Вебмайстер
Содержимое сайта и партнерские программы
Партнерские программы
Безопасность сайта

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

Cтатья "Обеспечение безопасности веб-сайтов" предоставлена Sophos Plc и SophosLabs.

Декабрь 2007 г.

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

Многие сайты хранят имена всех посетителей в базе данных, чтобы иметь возможность отображать их при вводе соответствующих пользователей. Злоумышленник может создать подложную учетную запись, разместив при этом в поле имени вредоносный код. Подобные атаки обычно реализуются с помощью вредоносных скриптов на языке Javascript, которые затем загружают контент с другого веб-сайта. Предполагается, что в базе данных хранится имя пользователя, но на самом деле в данном случае это будет вредоносный код. Соответственно, если веб-сайт отображает имя пользователя в верхней части страницы, то этот код будет выполнен. Поскольку при наличии определенных условий такой код может делать практически все, что угодно, угроза становится вполне реальной; тем не менее, разработчики зачастую про нее забывают. За последнее время жертвами XSS-атак стали многие популярные веб-сайты, в том числе MySpace, Facebook, Google Mail, ВКонтакте.

Примечание. 

Рассмотрим следующий PHP-код:

$firstname = $_POST["firstname"]; echo "Your name: $firstname";

После ввода имени в веб-форме сайт отображает на странице соответствующее сообщение. Если указать в форме имя «Chris», то сообщение будет иметь следующий вид: «Your name: Chris».

Что произойдет, если вместо имени ввести следующую конструкцию: «<script>alert („You just got hacked!“) ;</script>»?

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

В PHP имеется целый ряд пакетов, которые помогают фильтровать выводимые данные, например, CodeIgniter [15] Также в PHP имеется встроенная функция htmlspecialchars, которую можно использовать для фильтрации выводимых данных.

К следующему разделу

Оцініть статтю
Дякуємо за ваш відгук!