Обезопасить входящие параметры

Ситуация распространенная. Вы пишете маленький скриптик, который принимая ваши данные должен вывести их на странице.

Все очень просто, представим что у нас банальная форма и она принимает значение "NAME"

 
	<? if (isset($_GET['NAME'])) {
    $name = $_GET['NAME'];
echo 'Привет, ' . $name;
} ?>

Все очень просто и понятно. Вы проверили наличие параметра.

Теперь попробуем зайти на страницу:
ваш_скрипт.php?NAME=Роман

Видим на странице:

Привет, Роман.

А теперь представьте, что в параметр передали не то, что вы ожидали!

Например так:
ваш_скрипт.php?NAME=<script>alert('ATTACK!')</script>

Попробуйте и увидите что на странице исполнился JS. Это плохо. Это банальный пример конечно, но это показывает как работает XSS (Cross-Site Scripting).

В дальнейшем рассмотрим это подробнее.

Чтобы избежать такого проверяйте на html валидность полученные данные перед выводом :

 
	<? if (isset($_GET['NAME'])) {
    $name = $_GET['NAME'];
echo 'Привет, ' . htmlspecialchars($name, ENT_QUOTES);;
} ?>

Возврат к списку