Как предотвратить неправильные строки Юникода в JavaScript - PullRequest
0 голосов
/ 07 сентября 2018

Я тестировал некоторые инъекционные атаки на пользовательское текстовое поле в моем приложении javascript и обнаружил определенную строку в кодировке Юникод, которая вызывает сбой других моих клиентских приложений при чтении этого значения из базы данных.

Как я могу предотвратить появление этих вредных строк в кодировке Юникод, в то же время позволяя использовать другие коды Юникод, например японские символы?

Для строки атаки я использовал последний вариант из этого документа: https://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt

5.3.4 U + nFFFE U + nFFFF (для n = 1..10) | | «????????????????????????????????????????????????? ??????????????? | ?????????????????????????????????????????????????? ?????????????? "

Я читал о encodeURIComponent(), и это звучит так, как будто это должно привести к ошибке в некорректных строках Юникода. Тем не менее, я попробовал его в узле REPL в моем терминале с приведенной выше строкой атаки, и он проанализировал его без ошибок. Я использую кодирование неправильно? Мой терминал как-то влияет на персонажей? Должен ли я использовать другую функцию?

Буду признателен за любую помощь, я довольно новичок в таких атаках.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...