Какой, по вашему мнению, метод защиты скрипта для обработки запросов наиболее эффективен?
1 Вариант:
if( ereg( '^http://' .$HTTP_HOST ,getenv ('HTTP_REFERER' ))){
echo "Все, ок! Хост свой, выполняем скрипт";
................
Сам скрипт
................
}
else {
die('Ошибка! Чужой реф...');
}
2 Вариант:
Из другого скрипта, на нашем хосте, передаются следующие данные:
define ( 'whoishost', true );
А это наш скрипт обработки запросов:
if (! defined ( 'whoishost' )) {
die ( "Ошибка! Чужой реф!" );
}
else {
.................
Сам скрипт
................
}
Я где-то слышал, что в 1 варианте, при большом желании злоумышленник может подделать и законспирироваться под имя хоста.
Так ли это на самом деле? И какие есть плюсы и минусы этих вариантов?