HSTS 网站http跳转到https

HTTP Strict Transport Security  (通常简称为 HSTS ) 是一个安全功能,它告诉浏览器只能通过HTTPS访问当前资源, 禁止 HTTP 方式.

作用

一个网站接受一个HTTP的请求,然后跳转到HTTPS,用户可能在开始跳转前,通过没有加密的方式和服务器对话,比如,用户输入http://foo.com或者直接foo.com。

这样存在中间人攻击潜在威胁,跳转过程可能被恶意网站利用来直接接触用户信息,而不是原来的加密信息。

网站通过HTTP Strict Transport Security通知浏览器,这个网站禁止使用HTTP方式加载,浏览器应该自动把所有尝试使用HTTP的请求自动替换为HTTPS请求。

现实案例

你连接到一个免费WiFi接入点,然后开始浏览网站,访问你的网上银行,查看你的支出,并且支付一些订单。很不幸,你接入的WiFi实际上是黑客的笔记本热点,他们拦截了你最初的HTTP请求,然后跳转到一个你银行网站一模一样的钓鱼网站。 现在,你的隐私数据暴露给黑客了。

Strict Transport Security解决了这个问题;只要你通过HTTPS请求访问银行网站,并且银行网站配置好Strict Transport Security,你的浏览器知道自动使用HTTPS请求,这可以阻止黑客的中间人攻击的把戏。

启用 Strict Transport Security

开启HSTS只需要当通过HTTPS方式访问你的网站时,返回 Strict-Transport-SecurityHTTP 头信息:

Strict-Transport-Security: max-age=expireTime [; includeSubdomains]

expireTime
过期时间,单位秒,浏览器需要记住这个网站只能通过HTTPS访问的时间。
includeSubdomains  可选

如果这个可选的参数定义了,这条规则对于网站的所有子域同样生效。

例如:

进入 IIS -- 网站 — 你的域名 — HTTP 响应标头 — 添加
名称: Strict-Transport-Security
值:max-age=15768000; includeSubDomains; preload

注意:  Strict-Transport-Security 头信息当通过HTTP请求传递,会被浏览器忽略; 这是因为攻击者可能拦截或者篡改HTTP连接头。当你的网站通过HTTPS连接并且没有证书错误,浏览器知道你的网站能够支持HTTPS,并且接受 Strict-Transport-Security头信息.

浏览器如何处理

你的网站第一次通过HTTPS请求,服务器响应 Strict-Transport-Security 头,浏览器记录下这些信息,然后后面尝试访问这个网站的请求都会自动把HTTP替换为HTTPS。
当HSTS头设置的过期时间到了,后面通过HTTP的访问恢复到正常模式,不会再自动跳转到HTTPS。
每次浏览器接收到Strict-Transport-Security头,它都会更新这个网站的过期时间,所以网站可以刷新这些信息,防止过期发生。

浏览器兼容性


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值