PHP變量$ _SERVER ['SERVER_NAME']是僞造還是僞造的?我打算將它作爲表單發佈的安全措施。我會檢查以確保變量是我的網站名稱(www.example.com)。我知道HTTP_REFERRER可能是僞造的,但我不確定這個。
謝謝!
PHP變量$ _SERVER ['SERVER_NAME']是僞造還是僞造的?我打算將它作爲表單發佈的安全措施。我會檢查以確保變量是我的網站名稱(www.example.com)。我知道HTTP_REFERRER可能是僞造的,但我不確定這個。
謝謝!
實際上$ _ SERVER [「SERVER_NAME」]可以通過什麼客戶端瀏覽器發送過來...查看http://shiflett.org/blog/2006/mar/server-name-versus-http-host爲通過對問題調查的影響。
它不能僞造,persay,但它會總是返回您的網站名稱。如果您使用同一個腳本運行多個站點,並根據所提供的主機名稱使用其他數據庫,這很有用。
'SERVER_NAME'
The name of the server host under which the current script is executing. If the script is running on a virtual host, this will be the value defined for that virtual host.
「SERVER_NAME」與「HTTP_HOST」混淆。 – BalusC 2012-07-09 01:46:31
由訪問者通常不能僞造。但我懷疑你會想要強制執行某個SERVER_NAME來許可腳本,以便它們只能被特定的域使用。在這種情況下答案是肯定的,這個變量肯定可以僞造。
原因很簡單,服務器設置這個值。在大多數情況下,您會將PHP作爲Apache模塊運行,但有時您還有其他Apache模塊,有時候您使用NGINX或IIS以CGI模式運行PHP,有時您甚至會將PHP作爲CLI作爲子進程分支部署在雲中的內置服務器。這些服務器將負責設置該變量。
另外,總是有人工分配。
$_SERVER['SERVER_NAME'] = ... // this can go above all your scripts
無論它將永遠是相同的..你的服務器。不是請求來自的服務器。 – sachleen 2012-07-09 01:45:14