время
|
|
424 Часть IV. PHP-функции Глава 10
явно видны две ?дыры?. Одна маленькая и не особо за-
метная, а вот вторая — просто огромная, через которую большинство хакеров
и делает то, что не надо.
Какустранить ?дыру? номер 1? Не будем писать тонны кода по блокировке IP-адреса
и т. п., а просто проверим, откуда приходит запрос, а точнее, с какой страницы.
Если это будет любая страница нашего сайта, то все нормально, а во всех остальных
случаях пускать не будем. Подкорректируем файл authorize .php примера 31.6:
<?php
// открываем сессию
Глава 31. Сессии в РНР 431
session_start ( ) ;
// полный путь к корневой директории,
// в которой где расположены скрипты
$SERVER_ROOT = "http: //localhost/testl/" ;
// если пользователь пришел с любой страницы нашего сайта,
// то он наш.
// Переменная $HTTP_REFERER всегда доступна по умолчанию
//и содержит полный адрес ссылающейся страницы
// функция eregi() проверяет, начинается ли адрес ссылающейся
// страницы со значения в переменной $SERVER_ROOT
if (eregi ("/4$SERVER_ROOT",