为什么如果存在HSTS标头,Chrome不会强制HTTPS?
如果我已经从服务器端启用了HSTS标头,那为什么Google Chrome会忽略它?我可以用http自由访问网站。我期待浏览器应该强制网站加载HTTPS只。毕竟,HSTS就是为了这个目的。如果我错了,请纠正我。 参考:Video为什么如果存在HSTS标头,Chrome不会强制HTTPS?
Connection:keep-alive Content-Encoding:gzip
Content-Type:text/html; charset=UTF-8
Date:Mon, 18 Dec 2017 07:15:18 GMT
Link:<http://example.com/wp-json/>; rel="https://api.w.org/"
Server:nginx
Set-Cookie:wfvt_1954975060=5a376b06351b6; expires=Mon, 18-Dec-2017 07:45:18 GMT; Max-Age=1800; path=/; HttpOnly
Strict-Transport-Security:max-age=63072000; includeSubdomains;
Transfer-Encoding:chunked
Vary:Accept-Encoding
回答:
的Strict-Transport-Security
头只在HTTPS页面有效。它在HTTP页面上被忽略 - 如果您想强制用户使用HTTPS,请将它们从所有HTTP页面重定向到HTTPS,并在它们被重定向到的页面上显示Strict-Transport-Security
标题。
MDN explains why:
注:的
Strict-Transport-Security
头忽略浏览器时,您的站点使用HTTP访问;这是因为攻击者可能会拦截HTTP连接并注入标头或将其删除。如果您的站点通过HTTPS访问且没有证书错误,浏览器就知道您的站点具有HTTPS功能,并将遵守Strict-Transport-Security
标题。
以上是 为什么如果存在HSTS标头,Chrome不会强制HTTPS? 的全部内容, 来源链接: utcz.com/qa/261437.html