確定$_SERVER['HTTPS'] 以外的HTTPS 連接狀態
許多線上教學建議檢查$_SERVER['HTTPS']來確定伺服器連線是否透過HTTPS 進行保護。但是,某些伺服器上可能未定義 $_SERVER['HTTPS'],從而導致錯誤。
HTTPS 偵測的替代變數
要解決此問題,請考慮使用 isSecure() 函數,即使 $_SERVER['HTTPS']為undefined:
function isSecure() { return (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') || $_SERVER['SERVER_PORT'] == 443; }
相容性和注意事項
負載平衡器與 HTTP_X_FORWARDED_PROTO
請注意,此函數不會測試客戶端與潛在負載平衡器之間的連線。要檢查這一點,可以利用 HTTP_X_FORWARDED_PROTO 標頭,但實現更為複雜。
以上是如何在 PHP 中可靠地確定 HTTPS 連線狀態?的詳細內容。更多資訊請關注PHP中文網其他相關文章!