xss attack - regex или htmlspecialchars - PullRequest
1 голос
/ 30 июня 2011

Чтобы предотвратить атаку xss, если я использую регулярное выражение php для блокировки странных символов, таких как '> или ;, мне все равно нужно использовать htmlspecialchars и htmlentities?

Ответы [ 3 ]

2 голосов
/ 30 июня 2011

htmlspecialchars() или htmlentities() рекомендуются в качестве защиты от XSS-атак на созданное вручную регулярное выражение. Но , вы должны учитывать контекст. Например, htmlspecialchars() будет защищать динамическое содержимое внутри тега <div>, но не внутри тега <script> или обработчика событий, такого как onclick. В html-комментариях кодировка не обеспечивает никакой защиты. Ключ к написанию кода, который не подвержен атакам XSS, заключается в понимании всех различных векторов атак.

Для получения полной информации о предотвращении XSS я рекомендую OWASP XSS cheatheet .

0 голосов
/ 13 июля 2011

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

Если я не использую PDO из-за требований клиента или чего-то подобного, я, по крайней мере, встроу в свой класс соединения автоматическую функцию htmlspecialchars, чтобы я никогда не забывал это делать (хотя это моенаименее любимый вариант)

Как парень с пользовательским интерфейсом, я всегда нападаю на свои проблемы с безопасностью, начиная с --front-- end.Надлежащая и хорошо продуманная валидация внешнего интерфейса может предотвратить непреднамеренные проблемы, даже не доходя до запроса, и они являются наиболее эффективным шаблоном пользовательского интерфейса для сообщения о проблемах пользователю.Блокирующие элементы, такие как < или ;, имеют смысл в большинстве областей, потому что они просто не подходят.Вы не можете полагаться только на интерфейс, потому что человек может обойти его, отключив JavaScript.Но это хороший первый шаг и отличный способ ограничить неправильные запросы на сайтах с большим трафиком.Мое подтверждение выбора для быстрой и эффективной проверки полей: здесь.

0 голосов
/ 30 июня 2011

попробуйте также:

html_entity_decode ()

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