网站建设

网站建设

了解最新的网站建设动态、行业资讯和技术分享

关于HSTS安全协议的全面详细解析

2023-04-27 网站建设 8330 次阅读

HTTP 严格传输安全(HSTS)是一种安全功能,web 服务器通过它来告诉浏览器仅用 HTTPS 来与之通讯,而不是使用 HTTP。HSTS 是网站从 HTTP 到 HTTPS 中网站性能及安全优化非常重要的一个步骤,能够解决和兼容 HTTPS 中的一些不足之处。HSTS 在全站 HTTPS 下有一个较大的正向作用,推荐使用。

一、HSTS 是什么?

国际互联网工程组织 IETE 正在推行一种新的 Web安全协议HTTP Strict Transport Security(HSTS)。采用 HSTS 协议的网站将保证浏览器始终连接到该网站的 HTTPS 加密版本,不需要用户手动在 URL 地址栏中输入加密地址。该协议将帮助网站采用全局加密,用户看到的就是该网站的安全版本。

HSTS 的作用是强制客户端(如浏览器)使用 HTTPS 与服务器创建连接。服务器开启 HSTS 的方法是,当客户端通过 HTTPS 发出请求时,在服务器返回的超文本传输协议响应头中包含 Strict-Transport-Security 字段。非加密传输时设置的 HSTS 字段无效。

HTTPS 最典型的用户访问过程

通常我们访问一个网站时,一般在浏览器中只输入网站地址,而不输入协议名。比如访问合肥网站建设公司梦扬科技网站,如果直接输入网址 https://e926.come926.com 时,这就给了中间人攻击的一个机会,重定向会可能会被破坏,从而定向到一个恶意站点而不是应该访问的加密页面。HTTP 严格传输安全(HSTS)功能使 Web 服务器告知浏览器绝不使用 HTTP 访问,在浏览器端自动将所有到该站点的 HTTP 访问替换为 HTTPS 访问。

即使你打开网站看到的是全站 HTTPS 状态 ,你是因为我们在服务器上做过301/302 跳转到 https://www.e926.com这个地址的, HTTPS 网站的做法是对用户的 HTTP 访问做 302 跳转到 HTTPS,并重新建连。

那么问题也就来了,在这个跳转的过程中就有两个不足之处:

  • 整个通信过程中的前两个 RT 是没有意义的;
  • 使用了不安全的 HTTP 通信,万一你是在提交敏感数据呢。

HSTS 的出现就是解决这些问题的。HSTS 的作用除了节省 HTTPS 通信 RT 和强制使用 HTTPS ,还包括:

  • 阻止基于SSLStrip 的中间人攻击;
  • 万一证书有错误,则显示错误,用户不能回避警告。

HSTS 的工作机制可描述如下:服务器端配置支持 HSTS 后,会在给浏览器返回的 HTTP 首部中携带 HSTS 字段。浏览器获取到该信息后,会将所有 HTTP 访问请求在内部做307跳转到 HTTPS,而无需任何网络过程,从而提高了兼容性,这个机制对于不支持 HTTPS 的搜索引擎来说也是非常友好的做法。

目前大部分浏览器对 HSTS 的支持已经相当完美,具体各浏览器和版本的支持情况可以在http://caniuse.com/#search=HSTS上查看。 但是 HSTS 是有缺陷的,第一次访问网站的客户端,HSTS 并不工作。 要解决这个问题,就要了解我们下面要讲解的 HSTS preload list。

HSTS preload list 是什么?

HSTS preload list 是 Chrome 浏览器中的 HSTS 预载入列表,在该列表中的网站,使用 Chrome 浏览器访问时,会自动转换成 HTTPS。Firefox、Safari、Edge 浏览器也会采用这个列表。

加入 HSTS preload list 所需条件:

  • 有效的证书;
  • 将所有 HTTP 流量重定向到 HTTPS;
  • 确保所有子域名启用 HTTPS,特别是 www 子域名。

同时输出的 HSTS 响应头部需要满足以下条件:

  • max-age 至少需要 18 周,10886400 秒
  • 必须指定 includeSubdomains 参数
  • 必须支持 preload 参数

一个典型满足 HSTS preload list 的响应头部为:Strict-Transport-Security: max-age=63072000; includeSubDomains; preload

从申请到审核通过,时间在几天到几周不等。值得一提的是,从审核通过到正式加入到 Chrome 的 stable release 版本中还需要一段时间,因为要经过 canary、dev、beta 以及 stable progression。

HSTS 的优势及必要性

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

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

307 状态码

在 GET、HEAD 这些幂等的请求方式上,302、303、307 没啥区别,而对于 POST 就不同了,大部分浏览器 都会 302 会将 POST 请求转为 GET,而 303 是规范强制规定将 POST 转为 GET 请求,请求地址为 header 头中的 Location,307 则不一样,规范要求浏览器继续向 Location 的地址 POST 内容。

而在 HSTS 中,307 可以被缓存,缓存时间根据 max-age 而定,一般建议缓存 1 年甚至更长。

HSTS 存在的坑

  1. 纯 IP 的请求,HSTS 没法处理,比如 http://2.2.2.2 , 即便响应头中设置了 STS,浏览器也不会理会(未测试)
  2. HSTS 只能在 80 和 443 端口之间切换,如果服务是 8080 端口,即便设置了 STS,也无效(未测试)
  3. 如果浏览器证书错误,一般情况会提醒存在安全风险,然是依然给一个链接进入目标页,而 HSTS 则没有目标页入口,所以一旦证书配置错误,就是很大的故障了
  4. 如果服务器的 HTTPS 没有配置好就开启了 STS 的响应头,并且还设置了很长的过期时间,那么在你服务器 HTTPS 配置好之前,用户都是没办法连接到你的服务器的,除非 max-age 过期了。
  5. HSTS 能让你的网站在 ssllab 上到 A+

写在最后:HSTS 在全站 HTTPS 下有一个较大的正向作用,推荐使用。

相关新闻推荐

中小企业网站开发,低成本实现高质量上线效果

网站开发对于大多数中小企业来说,不需要动辄花费高额预算做复杂花哨的大平台,真正务实靠谱的选择就是做好贴合自身需求的中小企业网站开发,花不多的钱、走实在流程,低成本就能做出专业大气、稳定好用、符合企业形象的高质量上线效果,不花冤枉钱、不踩建站套路,让小企业也能拥有大品牌一样的正规线上门面。很多中小企业老板心里都清楚,自己做网站的需求很简单,无非就是线上有个官方展示名片,客户搜得到、看得懂、信得过,能...

2026-05-16

定制化网站开发,根据业务逻辑实现专属功能模块

定制化网站开发不靠现成模板凑数、不按固定套路搭建,而是完全按照企业自身真实业务逻辑,量身打造贴合经营模式的专属功能模块,需要什么就做什么,用不上的一概不瞎加,让网站适配你的生意流程,而不是让企业硬去迁就网站的死板规则。很多企业做网站踩坑的根本原因,就是一味选用千站一面的通用模板站,外表看着干净整洁,内里功能全是固定死的标配,不管你的业务是做工程接单、招商加盟、批发供货、会员锁客,还是项目预约、在线...

2026-05-16

网站开发与 SEO 底层优化,更利于搜索引擎收录

网站开发想要后期做推广不花钱硬砸广告、关键词自然排名稳步上涨,就必须从建站初期就把底层优化同步做好,而不是网站做完之后再临时补救修补,只有开发阶段把搜索引擎喜欢的基础细节全部做到位,网站才能更容易被搜索引擎快速收录、稳定排名、持续拿到免费精准流量。很多企业做网站都有一个通病,先只顾着把网站样子做出来,看着好看、页面齐全就算完工,完全不管基础优化有没有做,等到网站上线后发现,百度搜不到、关键词没排名...

2026-05-15

多语言网站开发,助力企业布局国际化市场

网站开发想要真正帮企业走出国门、做大外贸生意,稳稳布局海外国际化市场,就一定要做专业的多语言网站开发,不只用单一英文应付了事,而是根据目标出海国家打造对应的语种站点,贴合当地语言习惯、文化风格和采购需求,让全球不同地区的采购商都能看懂企业实力、读懂产品优势,放心主动来合作谈单。现在国内行业竞争越来越激烈,很多做工厂制造、五金机械、建材原料、家居用品和跨境货源的企业,都想开拓海外新市场,把产品卖给全...

2026-05-15

合肥网站建设避坑指南,新手建站少走弯路

网站建设在合肥看着选择很多、价格很乱,新手一不小心就会被低价套路、伪定制、隐形收费绕进去,钱花不少、效果很差,还耽误企业线上获客和品牌形象,所以提前摸清合肥建站市场的常见坑点和实用技巧,才能少走弯路、把钱花在刀刃上。合肥作为互联网资源集中的城市,建站公司多、报价跨度大,从几百块的模板站到几万块的定制站都有,很多新手老板第一次建站,最容易犯的错就是只比价、不看服务和实力,被低价全包当天上线这类宣传吸...

2026-05-14

一站式网站制作,设计、开发、上线全程托管

网站制作对于大多数不懂技术、没有专业运维人员的中小企业来说,最省心最靠谱的选择就是一站式网站制作服务,从前期页面设计、程序开发、域名备案、网站上线到后期日常维护、安全防护、故障处理全程托管交给专业团队负责,企业只需要安心做自己的主营业务,不用操心建站过程中的各种琐碎技术问题,轻轻松松就能拥有一个稳定好用、专业正规的企业官网。很多老板以前做网站都踩过不少坑,建站找一家公司,备案找另一家处理,服务器自...

2026-05-14

准备好开始您的项目了吗?

立即联系我们,获取专业的网站建设方案,让您的品牌在数字世界中脱颖而出