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

Помощь дата->рейтинг Поиск Почта RSS канал Статистика nickolay.info Домой

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);

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


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

25.05.2011, 11:34; рейтинг: 8187

  свежие записипоиск по блогукомментариистатистикао "вирусах" в архивах .zip

Наверх Яндекс.Метрика
© PerS
вход