对于Apache和PHP,了解它并强制使用HTTPS的最佳方法是什么?
我在phpinFO()中搜索了$_SERVER变量,但没有找到任何帮助。
编辑:感谢您的回答和建议!我不能在服务器级别强制它,因为它只用于登录页面。
如果使用HTTPS,则$_SERVER['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发送的,那么你的系统就不安全了。