Анонимность Защита от XSS атак.

Sportik1488

ТопМенеджер
220
122
7 Май 2018
Всего лишь несколько лет назад вы могли застать настоящую эпоху расцвета 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, также довольно популярны. Хотя в самописных функциях гораздо чаще можно найти какую-либо уязвимость.
 

Похожие темы