彩世界平台-彩世界时时app-彩世界开奖app苹果下载

热门关键词: 彩世界平台,彩世界时时app,彩世界开奖app苹果下载

您的位置:彩世界平台 > 学会党委 > 你所不知道的 HSTS

你所不知道的 HSTS

发布时间:2019-12-10 02:44编辑:学会党委浏览(67)

    你所不知道的 HSTS

    2015/10/24 · HTML5 · HSTS

    原文出处: 李靖(@Barret李靖)   

    很多人听说过也看到过 301、302,但是几乎从来没有看到过 303 和 307 的状态码。今天在淘宝首页看到了 307 状态码,于是摸索了一把。

    中间人劫持

    起因是这样,https 使用的是 443 端口进行数据传输,而浏览器的默认端口是

    1. 劫持者首先劫持用户的 80 端口,当用户向目标页发起请求时,劫持者模拟正常的 https 请求向源服务器获取数据,然后通过 80 端口返回给用户,大概可以看下下面两张图:

    图片 1

    用户一般不会在地址栏输入   ,而是习惯性输入 taobao.com  ,此时浏览器走的是 http,请求到达服务器之后,服务器告诉浏览器 302 跳转

    Location:

    1
    Location: https://www.taobao.com

    然后浏览器重新请求,通过 HTTPS 方式,443 端口通讯。而正因为用户不是直接输入 https:// 链接,劫持者利用这一点:

    图片 2

    只要能够劫持你的网络,比如路由劫持、DNS劫持,就可以作为中间人注入代码、替换广告。。。(上了 https 也拗不过电信,真是日了够了)

    这种劫持出现在两种情况下:

    • 用户没有通过准确的方式访问页面,除非输入 https:// ,否则浏览器默认以 http 方式访问
    • HTTPS 页面的链接中包含 http,这个 http 页面可能被劫持

    启用 HSTS

    HSTS,HTTP Strict Transport Security,简单说就是强制客户端使用 HTTPS 访问页面。其原理就是:

    • 在服务器响应头中添加  Strict-Transport-Security ,可以设置  max-age
    • 用户访问时,服务器种下这个头
    • 下次如果使用 http 访问,只要 max-age 未过期,客户端会进行内部跳转,可以看到 307 Redirect Internel 的响应码
    • 变成 https 访问源服务器

    这个过程有效避免了中间人对 80 端口的劫持。但是这里存在一个问题:如果用户在劫持状态,并且没有访问过源服务器,那么源服务器是没有办法给客户端种下 Strict-Transport-Security  响应头的(都被中间人挡下来了)。

    启用 HSTS 不仅仅可以有效防范中间人攻击,同时也为浏览器节省来一次 302/301 的跳转请求,收益还是很高的。我们的很多页面,难以避免地出现 http 的链接,比如 help 中的链接、运营填写的链接等,这些链接的请求都会经历一次 302,对于用户也是一样,收藏夹中的链接保存的可能也是 http 的。

    本文由彩世界平台发布于学会党委,转载请注明出处:你所不知道的 HSTS

    关键词: