使用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