--- title: Cross Site Scripting localeTitle: Скрипты для сайта --- ## Скрипты для сайта Cross Site Scripting - это тип уязвимости в веб-приложении, вызванный тем, что программист не дезинфицирует входные данные перед выдачей ввода в веб-браузер (например, комментарий к блогу). Он обычно используется для запуска вредоносного javascript в веб-браузере для совершения таких атак, как кража сеансовых файлов cookie среди других вредоносных действий для получения привилегий более высокого уровня в веб-приложении. ### Пример атаки на скрипт Блог позволяет пользователям создавать свои комментарии с помощью HTML-тегов, однако сценарий, запускающий блог, не выделяет теги ` ``` ### Защита вашего сайта от межсайтовых скриптовых атак в PHP В PHP есть две основные функции: `htmlspecialchars()` и `strip_tags()` , встроенные для защиты от атак с межсайтового скриптинга. Функция `htmlspecialchars($string)` предотвратит отображение HTML-строки в виде HTML и отображение ее в виде обычного текста в веб-браузере. **Пример кода htmlspecialchars ()** ```PHP alert('Cross Site Scripting!');"; echo htmlspecialchars($usercomment); ``` Другим подходом является `strip_tags($string, $allowedtags)` которая удаляет все теги HTML, за исключением HTML-тегов, которые вы указали в белый список. Важно отметить, что с помощью функции `strip_tags()` вы должны быть более осторожны, эта функция не мешает пользователю включать javascript в качестве ссылки, вам придется самостоятельно дезинформировать его. **Пример примера strip\_tags ()** ```php alert('Cross Site Scripting!');"; $allowedtags = "

"; echo strip_tags($usercomment, $allowedtags); ``` **Установка заголовка X-XSS-Protection:** В PHP вы можете отправить заголовок `X-XSS-Protection` Header, который будет указывать браузерам на проверку отраженной атаки Cross Site Scripting и блокировку загрузки страницы. Это не мешает всем атакам сценариев межсайтового взаимодействия только отражать их и их следует использовать в сочетании с другими методами. ```PHP ``` #### Дополнительная информация: * [OWASP Wiki - Скрипты между сайтами](https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)) * [Руководство пользователя php.net strip\_tags ()](https://secure.php.net/manual/en/function.strip-tags.php) * [Руководство пользователя php.net htmlspecialchars ()](https://secure.php.net/manual/en/function.htmlspecialchars.php) * [MDN - Политика безопасности контента (CSP)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP)