2013-04-07 70 views
1

我有一個問題,其中Web主機公司正在向服務器發送僅頭部請求,然後嘗試成爲'善良',並採取行動...請求數據;空請求檢測PHP

10.252.237.56 - - [29/Mar/2013:15:25:48 +1100] "HEAD/HTTP/1.1" 200 942 

如何在PHP中檢測到這一點,並停止傳遞給用戶端的東西。

拉里

+0

可能的重複http://stackoverflow.com/questions/1538065/find-out-http-method-in-php – elslooo 2013-04-07 08:33:20

回答

2
$_SERVER['REQUEST_METHOD'] 

您可以比較這對 「HEAD」,顯然,停止你的腳本,當他們相等。

但是,我認爲你應該要這個的唯一原因是性能(儘管我不認爲這些請求會產生任何負載)。從安全角度來看,HEAD請求不應該對您的應用程序造成任何損害。您應該使用身份驗證,會話等來驗證請求的真實性。禁止您的虛擬主機公司發送這些請求不會阻止其他人調用簡單的GET /(或PUT或其他未實現的方法)。

+0

如果你想阻止你的網頁主機的頭部請求,你也可以比較IP地址當然。 – elslooo 2013-04-07 08:40:53

+0

由於所有內容都在使用與真實請求相同的IP的負載均衡器之後,因此無法選擇IP地址。是的,我們會話,但這是空的請求看起來像一個新的會話,所以它會導致創建一個問題。他們每秒多次進行這些民意調查,因此能夠「看到」這是一項民意調查,而忽略它將會非常有幫助。 – Larry 2013-04-07 22:27:55

+0

根據您建立的平臺,您可以設置健康檢查以查找不同的URL(例如'/ health')。或者您可以檢查「X-Forwarded-For」標題。 – elslooo 2013-04-08 11:53:52