16 lines
2.3 KiB
Markdown
16 lines
2.3 KiB
Markdown
|
# Защита от межсайтового скриптинга (XSS)
|
|||
|
|
|||
|
Первый шаг для предотвращения [XSS](http://ru.wikipedia.org/wiki/Xss) атак - необходимо знать, когда и от чего себя защищать. XSS может быть выполнен тогда, когда он отображается внутри HTML-содержимого, иногда после введения данных через форму или выборки из базы данных. Любая глобальная переменная, содержащая информацию от клиента, может быть заражена. Это касается данных из `$_GET`, `$_POST` и `$_COOKIE`.
|
|||
|
|
|||
|
## Предотвращение
|
|||
|
|
|||
|
Существует несколько простых правил, защищающих ваше приложение от XSS. Первое - использование метода [Security::xss] для очистки любых входящих данных, полученных из глобальных переменных. Если вы не ожидаете HTML код в переменной, используйте [strip_tags](http://php.net/strip_tags) для удаления нежелательных HTML тэгов.
|
|||
|
|
|||
|
[!!] Если вы позволяете пользователям передавать HTML в ваше приложение, настоятельно рекомендуется использовать утилиты для очистки HTML кода, такие как [HTML Purifier](http://htmlpurifier.org/) или [HTML Tidy](http://php.net/tidy).
|
|||
|
|
|||
|
Второй шаг - всегда очищать данные перед их вставкой в HTML код. Класс [HTML] предоставляет возможность создавать наиболее употребляемые тэги, включая ссылки на скрипты и таблицы стилей, гиперссылки, изображения, ссылки на адреса электронной почты (mailto). Все подозрительные данные должны быть экранированы с помощью [HTML::chars].
|
|||
|
|
|||
|
## Ссылки
|
|||
|
|
|||
|
* [OWASP XSS Cheat Sheet](http://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet)
|