在我正在开发的PHP项目中,我有几个请求可以是POST或GET。目前,我正在使用$ _SERVER [REQUEST_METHOD]值来确定要使用的请求数组。我知道$ _REQUEST值可以用cookie操纵,$ _SERVER超级全球是否容易受到攻击?
答案 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#95672 和http://shiflett.org/blog/2006/mar/server-name-versus-http-host
所以不要盲目相信他们。