簡體   English   中英

$ _SERVER [REQUEST_METHOD]可以操縱嗎?

[英]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#95672http://shiflett.org/blog/2006/mar/server-name-versus-http-host

所以不要盲目相信他們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM