Найти в Дзене

Защита от XSS-атак

Всего лишь несколько лет назад вы могли застать настоящую эпоху расцвета XSS уязвимостей. Тогда халатность веб-разработчиков достигала не просто высокого, а даже профессионального уровня. Сегодня веб-мастера уже стали более серьезно подходить к этой проблеме. В этой короткой статье я расскажу о лучших способах защиты от XSS-атак. Но для начала в двух словах об XSS-уязвимостях. XSS уязвимость XSS — это уязвимость веб-страниц, возникающая в результате попадания в них пользовательских JS-скриптов. Где и как используют XSS уязвимости? Вот несколько самых популярных направлений: Доступ
Одна из главных целей XSS заключается именно в том, чтобы получить cookie жертвы и проникнуть в ее аккаунт. Для этого необходимо найти соответствующую уязвимость, вставить на страницу скрипт отправки cookie на снифер, а затем использовать сграбленные cookie для доступа на нужный сайт. Трафик (баннеры, голосования, сплойты и многое другое)
XSS используют также и для добычи трафика. Например, с помощью встав
Оглавление

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

В этой короткой статье я расскажу о лучших способах защиты от XSS-атак. Но для начала в двух словах об XSS-уязвимостях.

XSS уязвимость

XSS — это уязвимость веб-страниц, возникающая в результате попадания в них пользовательских JS-скриптов.

Где и как используют XSS уязвимости?

Вот несколько самых популярных направлений:

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

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

Рабочая сила
Через хитрые комбинации JavaScript + PHP проводят банальную прогрузку капчи для ее халявной расшифровки юзерами чужого ресурса. Для этого атакованная страница блокируется до тех пор, пока пользователь не введет код с нее.

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

Защита от XSS атак

ТОП-5 защит от XSS уязвимостей:

  • Защита функцией htmlspecialchars().
    Данная функция преобразует переданный ей аргумент в HTML-сущности, причем происходит преобразование именно тех символов, которые являются потенциально небезопасными.

2. Защита функцией strip_tags().
В отличие от htmlspecialchars() данная функция удаляет из строки аргумента только сами теги, причем второй аргумент служит для указания исключений, которые не нужно удалять. Через нее спокойно проходят строки: <, >, < img.

3. BB-коды.
Пропуск только определенных тегов, иногда совсем в иной форме, чем позволяют стандарты HTML

4. Регулярные выражения.
Кто-то регулярки любит, кто-то нет, а кто-то даже предпочитает написать свою собственную, через которую не проходят потенциально опасные символы или теги. Удобно в случае исключения аргументов из внедряемого тега без изменения HTML-сущности оставшейся части.

5. Самописные функции.
Всевозможные рекурсивные парсеры строк, которые очень гибко борются с XSS, также довольно популярны. Хотя в самописных функциях гораздо чаще можно найти какую-либо уязвимость.