PHP 中的$_SERVER['HTTP_HOST'] 與$_SERVER['SERVER_NAME']
使用PHP 腳本時,這一點至關重要了解$_SERVER['HTTP_HOST'] 和$_SERVER['SERVER_NAME']之間的差異。
了解 $_SERVER 變數
$_SERVER['SERVER_NAME']由 Web 伺服器的設定決定,並受 VirtualHost、ServerName 和 UseCanonicalName 等指令的影響。相反,$_SERVER['HTTP_HOST'] 是從客戶端的請求派生的。
使用哪個變數?
為了最大化腳本相容性,選擇似乎是合乎邏輯的對於 $_SERVER['HTTP_HOST']。然而,情況稍微複雜一些。 Chris Shiflett 的文章「SERVER_NAME 與 HTTP_HOST」強調不存在明確的解決方案。
潛在的安全問題
雖然$_SERVER['HTTP_HOST'] 使用起來似乎無害在連結和表單中,重要的是要記住$_SERVER 變數可以被攻擊者操縱。為了減輕這種風險,明智的做法是將允許的主機名稱列入白名單,如以下程式碼所示:
透過遵守這些準則,開發人員可以放心地在PHP 腳本中使用$_SERVER 變量,同時保持安全環境。
以上是在 PHP 中什麼時候應該使用 $_SERVER[\'HTTP_HOST\'] 與 $_SERVER[\'SERVER_NAME\'] ?的詳細內容。更多資訊請關注PHP中文網其他相關文章!