БлогNot. PHP: Ещё пара простейших защит

PHP: Ещё пара простейших защит

...и в продолжение темы об элементарной безопасности скриптов (вчера не успел дописать пост).

Всегда полезно проверять, откуда юзер пришёл на страницу с формой. Представим, что у нас есть скрипт чтото.php, содержащий ссылку для перехода к скрипту url.php, выводящему форму HTML, куда юзер может напечатать свой комментарий:

<a href="url.php">URL</a>

Перед тем, как выводить юзеру форму, проверим в скрипте url.php, пришёл ли он с правильной ссылки, находящейся на нашем хосте:

<?php
$host='http://'.$_SERVER['HTTP_HOST']; //Определяем URL скрипта
$fromurl=getenv('HTTP_REFERER'); //Определяем URL, с которого пришли
if (strstr($fromurl,$host)===false) { 
 //Если пришли с другого хоста
 echo "Вы зашли с неправильной страницы $fromurl :)\n"; 
 exit; 
}
?>

Увы, как и многое другое, свойство HTTP_REFERER можно подделать. Но от простейших атак код всё же поможет.

Второй момент - перед антимспамовой проверкой и добавлением отправленного сообщения полезно делать в скрипте небольшую паузу, например, на 1 секунду:

sleep (1);

Этот тоже будет служить мелкой защитой от ботов - для человека эта секунда пройдёт незамеченной, а вот программа по подбору пароля или капчи в результате станет работать заметно дольше и гораздо меньше будет загружать сервер.

25.05.2011, 11:34 [9201 просмотр]


теги: php безопасность

К этой статье пока нет комментариев, Ваш будет первым