将http重定向到https的唯一安全方法是使用带有preload选项的HSTS(Header Strict-Transport-Security)。
apache重定向是不安全的,因为攻击者可以拦截并重写它。不幸的是,对于较旧的浏览器和未预加载HSTS的浏览器,这是您唯一的选择:
<VirtualHost *:80>
ServerName www.example.com
Redirect "/" "https://www.example.com/"
</VirtualHost>
在https响应中:
<VirtualHost *:443>
# Use HTTP Strict Transport Security to force client to use secure connections only
# Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Header always set Strict-Transport-Security "max-age=31536000"
# Further Configuration goes here
[...]
</VirtualHost>
或者,使用.htaccess:
# Redirect if http
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# set header if https
# Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" env=HTTPS
Header set Strict-Transport-Security "max-age=31536000" env=HTTPS
标头严格传输安全性(HSTS)具有2种效果:
评论中的HSTS是最安全的,但不能回滚:
未注释的HSTS的安全性较差,因为第一个连接仍然可能不安全,并且不保护子域:
HSTS是针对SSLTrip的唯一可靠保护
SEO的含义:如果网站已经将所有http网页重定向到https,则该标头没有负面影响(也没有正面影响)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句