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

XSS атака

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

Еще по теме: Автоматизация поиска XSS уязвимостей

XSS уязвимость

Что такое XSS?

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

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

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

  • Доступ. Одна из главных целей XSS заключается именно в том, чтобы получить cookie жертвы и проникнуть в ее аккаунт. Для этого необходимо найти соответствующую уязвимость, вставить на страницу скрипт отправки cookie на снифер, а затем использовать сграбленные cookie для доступа на нужный сайт.
  • Трафик (баннеры, голосования, сплойты и многое другое). XSS используют также и для добычи трафика. Например, с помощью вставки iframe кода связки эксплойтов или даже открытия нового окна со ссылкой.
  • Рабочая сила. Через хитрые комбинации JavaScript + PHP проводят банальную прогрузку капчи для ее халявной расшифровки юзерами чужого ресурса. Для этого атакованная страница блокируется до тех пор, пока пользователь не введет код с нее.
  • CSRF. Иногда, даже имея логин и пароль/сессию, хакер не может попасть в аккаунт, так как привязка может быть к ip-адресу, браузеру и другим данным. Поэтому XSS в чистом виде не проходит. Но, зная конструкцию сайта, злоумышленник все равно сможем попасть в аккаунт с помощью межсайтовой подделки запроса.

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

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

  1. Защита функцией htmlspecialchars(). Данная функция преобразует переданный ей аргумент в HTML-сущности, причем происходит преобразование именно тех символов, которые являются потенциально небезопасными.
  2. Защита функцией strip_tags(). В отличие от htmlspecialchars() данная функция удаляет из строки аргумента только сами теги, причем второй аргумент служит для указания исключений, которые не нужно удалять. Через нее спокойно проходят строки: <, >, < img.
  3. BB-коды. Пропуск только определенных тегов, иногда совсем в иной форме, чем позволяют стандарты HTML
  4. Регулярные выражения. Кто-то регулярки любит, кто-то нет, а кто-то даже предпочитает написать свою собственную, через которую не проходят потенциально опасные символы или теги. Удобно в случае исключения аргументов из внедряемого тега без изменения HTML-сущности оставшейся части.
  5. Самописные функции. Всевозможные рекурсивные парсеры строк, которые очень гибко борются с XSS, также довольно популярны. Хотя в самописных функциях гораздо чаще можно найти какую-либо уязвимость.

На сегодня все. Всем удачи и информационной безопасности.

ПОЛЕЗНЫЕ ССЫЛКИ:

Falcon

Я не ломаю системы, я их закаляю и пишу статьи на спайсофте с 2011.

Добавить комментарий