2010-08-04 45 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」(原文如此)頭也不能保證在那裏。 – Wrikken 2010-08-04 17:49:52

回答

2

我想這是一個簡單的檢查反對cross-site request forgeries (CSRFs),或如其他人所說,盜鏈。調用這個函數的PHP腳本必須在的每個HTTP請求上執行到服務器,以便檢查盜鏈。

0

它檢查引用者是否等於腳本位置,基本上它的功能可能是防止盜鏈。

0

它看起來像它的檢查,看看引用是與請求相同的主機名。這可能用於阻止其他網站直接鏈接到圖像或其他內容。

0

這可用於CSRF protection。 Referer將始終是不同的域,因此CheckHost()將返回false。