Регулярное выражение XSS - PullRequest
       2

Регулярное выражение XSS

4 голосов
/ 07 января 2011

Что такое регулярное выражение, которое можно использовать для определения, является ли строка угрозой безопасности XSS (межсайтовый скриптинг)?

Ответы [ 3 ]

5 голосов
/ 07 января 2011

Это зависит от контекста, в котором используется эта строка.

Например, если строка распечатывается как часть страницы HTML, то специальные символы HTML <, >, " и ' потенциально могут быть рисками XSS.

Если они передаются через JSON, тогда ' и " потенциально могут быть рисками XSS.Если он включается в операторы SQL (что на самом деле не должно быть, по крайней мере, напрямую - используйте параметризованные запросы), то могут возникнуть проблемы, такие как ; и обратные пометки.*

3 голосов
/ 07 января 2011

Никогда не может быть пуленепробиваемой функции для остановки всего xss, и регулярное выражение не лучший выбор.XSS сильно зависит от того, где на странице и ограничивающих символов, таких как " ' < >, является хорошим началом, но ни в коем случае не всеобъемлющим решением.Даже с остановкой этих символов есть МНОГИЕ другие способы использования XSS. Чтобы назвать несколько, существуют злонамеренные href: javascript:alert(/xss/) и внедрение обработчиков событий: onload=alert(/xss/), неткоторый будет остановлен, если вы отфильтруете 4 перечисленных символа.

HTMLPurifier состоит буквально из тысяч регулярных выражений, и его постоянно обходят стороной.

0 голосов
/ 07 января 2011

Поиск любых не закодированных < символов в html, сгенерированных из пользовательских данных.Без каких-либо символов < на ваш сайт не может быть введен неприятный html.

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

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