пятница, 6 апреля 2012 г.

Проверка подлинности данных формы

Существует способ причинения вреда сайту, при котором определенная форма сохраняется на жесткий диск злоумышленника, изменяется параметр action и обращение к серверу происходит непосредственно с удаленного компьютера. Это делается с целью обхода проверки передаваемых данных средствами JavaScript, автоматизации подбора пароля, флуда и т.д. Защититься от этого можно с помощью переменной окружения HTTP_REFERER. В ней содержится адрес страницы, с которой был осуществлен переход. Например, если имя вашего домена www.some.com, то оно обязательно будет присутствовать в HTTP_REFERER при переходах внутри сайта. То есть в сценарии можно сделать следующую защиту:

if(!eregi("some\.com", $_SERVER['HTTP_REFERER'])) die("Несанкционированное обращение!");
или так


if(substr($_SERVER['HTTP_REFERER'], 0 , 18) != "http://www.site.ru" && substr($_SERVER['HTTP_REFERER'], 0 , 14) != "http://site.ru") die("Умри!");


проблемы:
переменной HTTP_REFERER нельзя полностью довериться, поскольку она может быть изменена на стороне клиента, но все же рассмотренный способ является хорошей защитой "от дурака

Комментариев нет:

Отправить комментарий