2013-04-07 51 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