使用Apache和PHP,知道它的最佳方式是什麼,並強制使用HTTPS?要知道服務器是通過HTTP還是HTTPS訪問的,最好的辦法是什麼?
我在phpinFO()中搜索$ _SERVER變量,發現沒有任何可以幫助的。
編輯:感謝您的答案和建議!我無法強制它在服務器級別上,因爲它僅適用於登錄頁面。
使用Apache和PHP,知道它的最佳方式是什麼,並強制使用HTTPS?要知道服務器是通過HTTP還是HTTPS訪問的,最好的辦法是什麼?
我在phpinFO()中搜索$ _SERVER變量,發現沒有任何可以幫助的。
編輯:感謝您的答案和建議!我無法強制它在服務器級別上,因爲它僅適用於登錄頁面。
$_SERVER['HTTPS']
如果使用HTTPS則非空。但是,您最好在Web服務器級別執行HTTPS強制實施,例如,
<virtualhost example.com:80>
redirect permanent https://example.com
</virtualhost>
<virtualhost example.com:443>
blah blah blah
</virtualhost>
在.htaccess文件,添加以下:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://YOUR_URL/$1 [R,L]
</IfModule>
另外,考慮添加HSTS HTTP標頭。這告訴瀏覽器甚至不嘗試訪問HTTP版本,並直接轉到HTTPS。這可以防止可能的中間人攻擊,您的重定向可能會被攔截。
(前提是用戶已經瀏覽過這個網站,或者你的網站添加到內置HSTS列表。)
見http://dev.chromium.org/sts爲如何被添加到內置的名單,以及頭的外觀的例子喜歡。
唯一正確的答案是因爲您配置服務器的行爲方式。
如果您不知道,絕對有信心,在向PHP發送請求時,無論它是通過HTTP還是HTTPS發送,那麼您的系統都不安全。
強迫它? mod_rewrite的。 – Alfabravo