Какие символы Юникода (точнее, кодовые точки) опасны и должны быть занесены в черный список и запрещены для использования пользователями? Я знаю, что символы переопределения BIDI и" пробел нулевой ширины "являются очень склонны создавать проблемы, но какие еще есть?
Спасибо
'ЗАПОЛНИТЕЛЬ ХАНГЫЛЯ' (U+3164)
Начиная с Unicode 1.1 в 1993, существует пустой широкий, нулевой пробел.
Мы не видим его, ни один скопировать/вставить он один, потому что мы не можем выбрать его!
Это должно быть сгенерировано, сочетание клавиш Unix: CTRL
+ SHIFT
+ u
+ 3164
Это может в значительной степени рџ ’© что-либо : переменные, имя функции, URL, имена файлов, подражают DNS, делают недействительным строки хеша, записи базы данных, сообщения в блоге, логины, позволяют фальсифицировать идентичные учетные записи, и т.д.
<час>ДЕМОНСТРАЦИЯ 1: Изменение переменных
переменная угнала , содержит символ Заполнителя Хангыля, консольный вызов журнала переменная без символа:
const normal = "Hello w488ld"
const hijaㅤcked = "Hello w488ld"
console.log(normal)
console.log(hijacked)
ДЕМОНСТРАЦИЯ 2: Угоните URL
Те 3, которые URL приведет к xn--stackoverflow-fr16ea.com
:
https://stackㅤㅤoverflow.com
https://stackㅤㅤoverflow.com