Всем привет! В этом материале рассмотрим, что такое XSS-атака и как от нее защититься .
Всем привет! В этом материале рассмотрим, что такое XSS-атака и как от нее защититься.
Что такое XSS?
XSS(Cross Site Scripting) - межсайтовый скриптинг. С помощью XSS-уязвимостей обычно злоумышленники крадут cookies пользователей, используя вставки javascript кода. Данный вид атаки практически безопасен для сервера, но очень опасен для пользователей.
Как защититься от XSS?
Обычно подобную уязвимость можно найти в формах или в get запросах. Например, у нас есть форма поиска на сайте. Попробуйте ввести туда подобную команду:
<script>
alert('cookies: ' + document.cookie)
</script>
Если вы увидите всплывающее окно с информацией о cookies, значит форма подвержена атаке.
То же самое можно проделать и для get запросов. Просто подставьте вместо нужного значения уже известную нам команду:
http://site.ru/script?query=<script>alert('cookies: ' + document.cookie)
На самом деле существуют многие разновидности кода, встраивая который в формы или запросы можно получить доступ к информации на сайте, но нам, как разработчикам, важно не это, а то, как от этой атаки защититься. Давайте об этом и поговорим.
Как защититься от XSS?
Чтобы защититься от XSS, нужно просто заменить все опасные символы на безопасные.
$strainer = array("<", ">");
$_GET['query'] = str_replace($strainer, "|", $_GET['query']);
Чтобы использовать стрейнер для каждого символа, можно написать функцию:
function xss_cleaner($array) {
$strainer = array("<", ">");
foreach($array as $num => $xss) {
$array[$num] = str_replace($strainer, "|", $xss);
}
return $array;
}
$_REQUEST = xss_cleaner($_REQUEST);
Итак, на этом все. Спасибо за внимание!
