Flash / AS3 обрабатывает символы RTLO и RTLE Unicode? - PullRequest
2 голосов
/ 29 июня 2011

Исходя из этого отчета , мне интересно, обрабатывает ли Flash / AS3 символы переопределения справа налево и встраивания справа налево?

Например, будет липрограмма чата, реализованная в AS, уязвима для кого-либо, использующего RTLO / RTLE, чтобы обойти фильтры ненормативной лексики (например, написать «\ u202E! nmad», чтобы написать «черт!») или выдать себя за другого пользователя (например, поставить «\ u202EmoT» в качестве имени пользователя, чтобы показатькак "Том")?

Если это правда, какие контрмеры можно предпринять, чтобы избежать этих проблем?

1 Ответ

1 голос
/ 30 июня 2011

Это связано с визуализатором текста, а не с ActionScript как таковым.Если вы используете новый рендерер текста Flash 10, который поддерживает двунаправленную и сложную разметку текста, то да, пользовательский ввод может отображаться неожиданным образом.Новый текстовый рендерер используется такими классами, как TextLine.Вы можете увидеть это в действии, вставив что-то вроде:

well‮!nmad!

в демонстрационный пример макета текста на http://blog.theflashblog.com/?p=442.

В старом текстовом редакторе вы не получите это, но вытакже не сможет правильно отображать сложные сценарии.

Когда вы принимаете ввод ненадежного пользователя для включения в более широкую строку текста, независимо от того, задействован Flash или нет, вы должны отфильтровать эти символы.Хорошая группа для фильтрации - W3C, обозначенная , которая не подходит для разметки .Это включает переопределения двунаправленного текста и кучу других обычно проблемных контрольных кодов.

Я бы порекомендовал большинству веб-приложений регулярно отфильтровывать все из них, а также все контрольные коды ASCII и C1, кроме новой строки (U +0000 – U + 0009, U + 000B – U + 001F, U + 007F – U + 009F).

(Фильтры ненормативной лексики не являются веской причиной для запрета биди-IMO - их так легко обманутьпочти все, что это даже не стоит беспокоить.)

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