$ _SERVER [REQUEST_METHOD]可以操纵吗?

时间:2008-12-07 01:31:17

标签: php security

在我正在开发的PHP项目中,我有几个请求可以是POST或GET。目前,我正在使用$ _SERVER [REQUEST_METHOD]值来确定要使用的请求数组。我知道$ _REQUEST值可以用cookie操纵,$ _SERVER超级全球是否容易受到攻击?

4 个答案:

答案 0 :(得分:7)

$ _SERVER超全局由PHP填充,其中包含从Web服务器获取的数据。

因此,除非攻击者用自己的服务器替换Web服务器,或者管理服务器上非常幸运的缓冲区溢出,否则你没事。

答案 1 :(得分:0)

REQUEST_METHOD不仅限于POST和GET - 您还需要处理HEAD(IIRC PHP将在看到该标题时在输出的第一个符号处终止脚本)和(在不太可能的设置上)您可能会得到一些WebDAV。

答案 2 :(得分:0)

在什么意义上,$ _REQUEST可以被cookie“操纵”? Cookie会覆盖来自POST和GET的值,但所有三个值都由发出请求的客户端直接控制。

如果您希望GET和POST优先于cookie,您可以在php.ini中设置变量request_order:

request_order = CGP

(通过cookie获得post' priority over获得')。你甚至可以完全忽略C.

答案 3 :(得分:0)

旧线程,但由于投票最多的答案是错误的,安全性是一个重要的问题,我们继续:不仅REQUEST_METHOD而且$ _SERVER中的其他值也可能被污染。

参见例如http://www.php.net/manual/en/reserved.variables.server.php#95672http://shiflett.org/blog/2006/mar/server-name-versus-http-host

所以不要盲目相信他们。