top of page

XSS атака. Что такое и как защититься?



Что такое XSS (межсайтовый скриптинг)?


Межсайтовый скриптинг (XSS) - это специально подготовленный URL-адрес, содержащий код атаки, который приведет к отправке злоумышленнику расшифровки информации, введенной пользователем в веб-браузер. Это позволяет злоумышленнику обойти политику одного и того же источника, которая предназначена для того, чтобы отличать разные веб-сайты друг от друга. Уязвимости для расшифровки межсайтовых сценариев обычно позволяют злоумышленнику выглядеть как жертва, выполнять любые действия, на которые способен пользователь, и получать доступ к любым пользовательским данным. Если пользователь-жертва имеет привилегированный доступ к приложению, злоумышленник имеет полный контроль над всеми функциональными возможностями и данными приложения.


Как работает XSS-атака?


Межсайтовый скриптинг работает путем манипулирования уязвимым веб-сайтом для возврата пользователям вводящего в заблуждение кода JavaScript. Когда вредоносный код выполняется в браузере жертвы, злоумышленник может нарушить взаимодействие жертвы с приложением.


Как понять XSS-атаку?


В качестве наилучшего метода защиты регистрируйте все, что происходит на ваших веб-серверах.

Нужно искать что-то необычное. Вы можете обнаружить что-то необычное, почаще проверяя свои логи. Частью для поиска в примере записи журнала веб-доступа, которая является признаком атаки XSS, является команда GET//.


Некоторые из типов XSS-атак


Отраженный XSS из текущего HTTP-запроса вредоносного скрипта. Это происходит, когда приложение получает данные в HTTP-запросе и вставляет эти данные в немедленный ответ небезопасным способом. Вредоносный скрипт хранится в формате XSS в базе данных веб-сайта. Это происходит, когда приложение получает данные из ненадежного источника и вставляет эти данные в последующие HTTP-ответы небезопасным способом. Данные, о которых идет речь, могут быть отправлены в приложение с помощью HTTP-запросов. XSS на основе DOM (объектной модели документа), где уязвимость находится в коде на стороне клиента, а не в коде на стороне сервера. Это происходит, когда приложение содержит некоторый клиентский JavaScript, который обрабатывает данные из ненадежного источника небезопасным способом, обычно путем записи данных в DOM.


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


Не существует единого стандарта или стратегии предотвращения атак с расшифровкой межсайтовых сценариев (XSS). Существует три наиболее известных способа для предотвращения XSS-атак.

Экранирование: Экранирование от данных означает получение данных, которые получает приложение, и обеспечение их безопасности перед созданием для конечного пользователя. Избегая ввода данных пользователем, можно предотвратить злонамеренную интерпретацию ключевых символов в данных, полученных веб-страницей.

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

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


bottom of page