[英]Is $_SERVER[REQUEST_METHOD] manipulable?
在我正在開發的PHP項目中,我有幾個請求可以是POST或GET。 目前,我正在使用$ _SERVER [REQUEST_METHOD]值來確定要使用的請求數組。 我知道$ _REQUEST值可以用cookie操縱,$ _SERVER超級全球是否容易受到攻擊?
$ _SERVER超全局由PHP填充,它從Web服務器獲取數據。
因此,除非攻擊者用自己的服務器替換Web服務器,或者管理一個非常幸運的緩沖區溢出服務器,否則你沒事。
REQUEST_METHOD不僅限於POST和GET - 您還需要處理HEAD(IIRC PHP會在看到該標題時在輸出的第一個符號處終止腳本)和(在不太可能的設置上)您可能會獲得一些WebDAV。
在什么意義上,$ _REQUEST可以被cookie“操縱”? Cookie會覆蓋來自POST和GET的值 ,但所有三個值都由發出請求的客戶端直接控制。
如果您希望GET和POST優先於cookie,您可以在php.ini中設置變量request_order:
request_order = CGP
(它post' priority over
'獲取' post' priority over
於cookie)。 你甚至可以完全忽略C.
舊線程,但由於投票最多的答案是錯誤的,安全性是一個重要的問題,我們在這里:不僅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
所以不要盲目相信他們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.