

使用HSTS协议强制浏览器使用HTTPS协议访问网站
source link: https://blog.vimge.com/archives/other/https-hsts.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

使用HSTS协议强制浏览器使用HTTPS协议访问网站
大家都知道网站启用SSL数字证书后使用HTTPS协议可以保证服务器与浏览器端数据加密,但与此同时不可避免另外一个问题,总存在部分用户会直接输入域名的方式访问网站,默认浏览器是使用HTTP协议访问网站的,此时即便网站启用了SSL数字证书,此时用户与服务器端的数据交互仍然使用的是明文传输方式,用户数据得不到保护,因为SSL数字证书没有生效。
可能你会说那不如直接关闭80端口吧(好吧,如果你是API等后台服务大可不必考虑前台用户访问的问题)或HTTP访问的时候直接跳转到HTTPS协议吧(直接跳转其实也存在『中间人』攻击风险),其实这个问题有更好的方案,这就是下面要介绍的
HSTS(HTTP Strict Transport Security),它是一个Web安全策略机制(web security policy mechanism),它通过服务器为HTTP响应增加如下一个Header 来让浏览器强制使用HTTPS与网站进行通信,以减少会话劫持风险:
Strict-Transport-Security:max-age=63072000; includeSubdomains; preload
只要在服务器返回给浏览器的响应头中,增加 Strict-Transport-Security这个HTTP Header 浏览器都将直接强制性的发起HTTPS请求,现在访问机制如下

HSTS Header max-age参数为有效期,在有效期内,浏览器只要向xxx或其子域名发送HTTP请求时,必须采用HTTPS来发起连接。
通常如果因为过期或其他原因导致SSL证书失效的时候,浏览器会提示我们证书失效并提示风险,但我们仍然能够访问网站,如果使用了HSTS后则服务器将严格禁止继续访问,提示如下

不足和缺陷
至此,你可能会发现,HSTS协议其他还是有他的缺陷,即用户首次访问的时候依然要借助HTTP协议返回HSTS Header,这将依然会产生一次中间人攻击风险。
Preload List
针对上面的攻击,HSTS也有应对办法,那就是在浏览器里内置一个列表,只要是在这个列表里的域名,无论何时、何种情况,浏览器都只使用HTTPS发起连接。这个列表由Google Chromium维护,FireFox、Safari、IE等主流浏览器均在使用。
可以在HSTS Preload List的官网上(https://hstspreload.org)提交申请,或者了解更多详细的内容。
2017-8-1 更新
百度近期推出了HTTPS认证,在百度站长工具里面认证通过后网站收录自动替换为HTTPS协议,结合HSTS进一步降低了入口风险,毕竟很多用户流量都来自百度
- 本文目前尚无任何评论.
Recommend
-
28
分享发现 - @noerrors - 在设置》应用管理》默认应用设置(右上角)里把默认浏览器改成 Chrome,过段时间又改成小米那个一堆广告的浏览器几个意思?不拿用户的决定当回事?那个浏览器好像还自带墙。。。。。
-
5
http/https协议下免输入使用Git 2017-12-21 14:50:42 +08 字数:941 标签: Git 在一些条件下,不方便使用ssh协议来获取、更新Git库。...
-
12
Nginx挂载ssl证书开启HTTPS访问网站 Wiken 2020-03-11 不知小伙伴们在浏览网站时是否有注意到,打...
-
19
2021-04-26了不起的Chrome浏览器(2):Chrome 90将默认使用HTTPS,Web更安全了摘要: 4月13日正式发布的Chrome 90,带来了哪些有意思的新...
-
10
V2EX › .NET .net6 使用 UseHttpsRedirection 中间件强制将请求从 http 转 https,但 Authorization 信息丢失
-
6
PHP 使用 curl 访问获取 https 网站的内容 date_range更新于 2019/12/04 info 遇到一个...
-
4
依靠 cloudflare 我们能够把域名解析指向到云服务器的 ip 地址,借助 acme.sh 我们能为域名申请 SSL 证书,通过 nginx 反向解析服务器,让我们的网站访问走 https 协议。https 协议经由 http 进行通信,但利用 SSL/TLS 来加密数据包,比单纯的 http 协议(明文...
-
4
夜深人静的时候,很多人都会在网上看看小视频,释放当天的压力。 每次在浏览不可描述的小网站时,大家最担心的,莫过于自己的小秘密被别人发现了。 所以,为了避免出现这种社死场面,在访问这些特殊网站时,我们大多会开启--无痕模式。
-
4
微软强制使用 Edge 浏览器打开 Outlook 和 Teams 中的链接,惹怒 IT 管理员 作者:远洋 2023-05-04 08:29:04 微软最近的一项举动引起了 IT 管理员的不满,该公司宣布将强制 Outlook 和 Teams 打开的网页链接都使用...
-
4
强制替换git clone 通过https或git 2024-01-24 Github ...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK