Данный код не причиняет вреда, а лишь демонстрирует уязвимость XSS, отображая ваши cookies. Следует помнить, что код может быть другим, более опасным и, будучи оставленным, например, в сообщении гостевой книги станет запускаться на машине каждого из посетителей гостевой книги. Для защиты от такого вида атак следует проверять содержимое параметров при помощи регулярных выражений, как это продемонстрировано в гл. 5.
Одним из распространенных способов дискредитации посетителя форума или чата является подделка его имени. Подделка производится путем замены в имени пользователя английских букв сходными по начертанию русскими буквами или наоборот.
Пусть имеется таблица authors, содержащая поле name, в котором хранятся имена пользователей. Задача будет состоять в проверке нового имени на предмет его уникальности и схожести с другими именами. Решение представлено в листинге 9.7.
Часто Web-приложения, такие как форум или фотогалерея, позволяют посетителям публиковать собственные изображения или файлы. Это могут быть фотографии, музыкальные, текстовые или бинарные файлы. Передача пользовательских файлов на сервер уже несет в себе потенциальную опасность, и при невнимательном кодировании может привести к серьезным последствиям. Для демонстрации угрозы, исходящей из пользовательских файлов, разработаем небольшое Web-приложение, которое закачивает файл пользователя на сайт и предоставляет ссылку для скачивания или его просмотра (если это изображение или текстовый файл).
Приложение будет состоять из двух файлов: index.php, являющегося HTML-формой для отправки файлов на сервер, и handler.php - обработчика формы. Содержимое файла index.php представлено в листинге 9.8.