Я тестировал некоторые инъекционные атаки на пользовательское текстовое поле в моем приложении 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 в моем терминале с приведенной выше строкой атаки, и он проанализировал его без ошибок. Я использую кодирование неправильно? Мой терминал как-то влияет на персонажей? Должен ли я использовать другую функцию?
Буду признателен за любую помощь, я довольно новичок в таких атаках.