2010-08-04 3 views
1

Посмотрите на эту функцию пожалуйстаЧто такое использование следующей функции?

function CheckHost() 
{ 
    $url = parse_url($_SERVER['HTTP_REFERER']); 
    $host = $url['host']; 
    if($host == $_SERVER['SERVER_NAME']) 
     return true; 
    return false; 
} 

я видел его где-то, но не могу понять его использование.

является его по соображениям безопасности, или что? (Как я вижу, это просто проверить последний запрос с того же сервера как сценарий)

Спасибо за внимание

+0

Ответы 3 ответа a.t.m. Могу ли я добавить функцию _should_ проверить, установлен ли реферер вообще, и действовать соответствующим образом? Заголовок 'referer' (sic) не гарантированно присутствует даже в действительных запросах. – Wrikken

ответ

2

Я предполагаю, что это простая проверка против cross-site request forgeries (CSRFs), или, как говорят другие, hotlinking. PHP-скрипт, вызывающий эту функцию, должен быть выполнен на каждый HTTP-запрос на сервер, чтобы проверить хотлинкинг.

0

Он проверяет, соответствует ли референт месту расположения сценария, в основном его функция, вероятно, предотвращает хотлинкинг.

0

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

0

Это может использоваться для CSRF protection. Референт всегда будет иметь другой домен и, следовательно, CheckHost() вернет false.

Смежные вопросы