Главная
 

Как защититься от XSS и CSRF?

Дата публикации: 
Втр, 2011-09-20 09:56

Что такое XSS?
XSS - межсайтовый скриптинг. Данный вид уязвимости заключается в том, что в выдаваемая сервером страница содержит скрипты (например java), написанные пользователями.

Данная уязвимость преимущественно присутствует на страницах, где допустим прямой вывод пользовательского html кода в необработанном виде, либо плохо обрабатываются BBcode.
Если пользователь откроет зараженную страницу - на его компьютере выполнится скрипт, который может выполнить потенциально опасные действия, например отправить cookies на сервер злоумышленника, что может позволить злоумышленнику авторизоваться на сайте от имени пользователя.
Еще одно из потенциально опасных мест - title станицы, где скрипт может быть замаскирован сменой кодировки(которая может не совпадать с кодировкой страницы), что может позволить ему пройти сквозь фильтрацию.

Что такое CSRF?
CSRF - отправка запросов на сторонние ресурс от имени жертвы. Данная атака обычно применяется, как метод использования XSS уязвимостей сайта. Человек заходит на сайт с CSRF-скриптом, который был туда помещен злоумышленником, который использовал уязвимость XSS и от его имени происходят какие то действия (от "шуточных" до переводов денег).

Как еще можно использовать XSS?
Так же возможно значительно замедлить работу сайта, если поместить в его код скрипт, производящий загрузку большого объема данных (или небольшого объема, но с медленных серверов).

Методы борьбы
Для того, чтобы обезопасить себя от данного типа атак - необходимо фильтровать все данные, вводимые пользователями на предмет возможных скриптов. Данные скрипты могут находиться как в html тэгах, так и в их атрибутах вида OnClick и др. В случае с BBcode, если их обработка проводится некорректно - так же возможно добавление скриптов аналогичным способом. В частности уязвимость XSS в BBcode была обнаружена в одной из версий форумного движка SMF.
Так же следует держать на контроле остальные данные, поступающие в скрипт извне. Например сервис “почта.ру” был в свое время взломан за счет того, что на нем был необрабатываемый вывод данных, поступающих в скрипт из GET запроса. Злоумышленники внедряли в качестве одного из параметров запроса фишинговый скрипт и отправляли полученную ссылку различным пользователям. Если пользователь переходил по этой ссылке, его cookies отправлялись злоумышленнику и он получал доступ к почтовому ящику.

Методом защиты от CSRF атак служит механизм, когда сайты требуют подтверждения болшего количества действий пользователя и ведут проверку поля HTTP_REFERER, если оно есть в запросе.
Еще один способ защиты - ассоциировать с сессией ключ,который будет передаваться посредством POST-запросов и проверяться сервером, во время каждого такого запроса.Это сделает бесполезной кражу cookies (информация будет бесполезна без данного ключа).
Методы обнаружения
Для обнаружения данной уязвимости можно проанализировать фильтрацию данных, вводимых пользователями. Так же можно попробовать добавить скрипт (например alert(‘Ups’);) на страницу всеми возможными способами. В случае успеха – исправить фильтры, отвечающие за обработку данных содержащих скрипт.

Одна из простейших

Одна из простейших уязвимостей - это запрос url сайта с добавленными данными в строке. Эти сведения обрабатываются движком, как внутренние входящие и отображаются на вновь сгенерированной странице.P.s. Не мешало бы добавить форму для указания хотя бы имени комментирующего...

Связаться с нами