символ UTF RLO ( right-to-left override)

Всё что не связано с программированием на C++ и Lua.
Ответить
Diatlo
c7i.team
Сообщения: 251
Зарегистрирован: Пт ноя 06, 2009 6:04 am

символ UTF RLO ( right-to-left override)

Сообщение Diatlo » Чт мар 12, 2015 10:00 am

http://habrahabr.ru/post/252813/

Вкратце, в UTF есть символы поддержки написания текстов, которые читаются справа-налево (арабские, еврейские).
Это
RLO (right-to-left override) текст справа налево,
PDF (pop directional formatting), сбрасывает эффект последнего RLO или других подобных символов (их несколько http://unicode.org/reports/tr9/#Directi ... Characters).

Если входящий поток не парсить, а внутри есть полноценная поддержка/преобразование UTF символов в другую кодировку (например, подключена библиотека поддержки UTF, а не преобразование по своей таблице), то можно передавать слова, которые будут переворачиваться (т.е. превращаться с последней буквы к первой):
"<RLO>ОЛЯ<PDF>" - "ЯЛО". Если где-то есть фильтр на запрещенные слова, то такие слова могут его проскочить и наделать делов.
Уже есть всякие хакерские трюки с html в кодировке UTF с перевертыванием, попытки SQL-инжекта. Поле, в принципе, непаханное,
может везде всплыть, где есть UTF. Даже в открытом коде с github могут сделать подлянку - участок кода перевернется, скомпилируется и будет дыра в защите или файл с паролями отошлется куда-нибудь. =)

Ответить