了解最新的网站建设动态、行业资讯和技术分享
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.com 或 e926.com 时,这就给了中间人攻击的一个机会,重定向会可能会被破坏,从而定向到一个恶意站点而不是应该访问的加密页面。HTTP 严格传输安全(HSTS)功能使 Web 服务器告知浏览器绝不使用 HTTP 访问,在浏览器端自动将所有到该站点的 HTTP 访问替换为 HTTPS 访问。
即使你打开网站看到的是全站 HTTPS 状态 ,你是因为我们在服务器上做过301/302 跳转到 https://www.e926.com这个地址的, HTTPS 网站的做法是对用户的 HTTP 访问做 302 跳转到 HTTPS,并重新建连。
那么问题也就来了,在这个跳转的过程中就有两个不足之处:
HSTS 的出现就是解决这些问题的。HSTS 的作用除了节省 HTTPS 通信 RT 和强制使用 HTTPS ,还包括:
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 所需条件:
同时输出的 HSTS 响应头部需要满足以下条件:
一个典型满足 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 存在的坑
写在最后:HSTS 在全站 HTTPS 下有一个较大的正向作用,推荐使用。
优秀的网站设计不仅能吸引用户,还能引导他们高效地完成目标操作,提升转化率。本文将分析网站设计与用户体验优化中的常见问题,并提供相应的解决方案。常见问题一:网站加载速度慢解决方案:优化图像:使用压缩工具减小图片文件大小,同时保持图像质量。利用:内容分发网络可以加速网站内容的全球分发。减少请求:合并、文件,减少页面加载时的请求次数。启用缓存:服务器和浏览器缓存可以减少重复加载相同资源的时间。常见问题二...
2025-02-13在启动网站建设项目时,选择合适的域名是至关重要的一步。域名不仅是网站的地址,也是品牌在线身份的核心组成部分。本文将探讨域名选择与注册过程中常见的问题及解决方案。常见问题一:如何选择易于记忆且符合品牌形象的域名?解决方案:简洁明了:选择简短、直观、易于拼写的域名。关键词融入:如果可能,将品牌名称或业务关键词融入域名中,有助于和提升品牌识别度。避免数字和连字符:除非必要,否则尽量避免使用数字和连字符,...
2025-02-131精准定位关键词:明确页面内容的核心关键词或短语。这些关键词应与页面的主题和内容紧密相关,能够准确反映页面的核心内容。避免使用过于宽泛的词汇,而应选择具体、精准的关键词,以提高搜索引擎的匹配度和用户的点击意愿。2简洁明了,突出重点:标题应该尽量简短,控制在一定字数范围内(一般建议不超过60个字),以避免被搜索引擎截断或用户在阅读时产生疲劳。突出页面的核心卖点或独特之处,使用有吸引力的词汇和句式,让...
2025-01-06在当今竞争激烈的市场中,中小企业是不可或缺的一部分。而随着互联网的发展,越来越多的企业开始认识到,建立一个良好的网站对企业的重要性。下面将详细介绍中小企业建立网站的优势。提升企业形象在当今互联网时代,网站已经成为企业的门面。企业通过设计精美的网站,可以提升企业形象,让客户对企业有更好的印象。一家好的网站设计,不仅能够给人留下深刻的印象,还能让客户感觉到企业的专业性和专注度。这样的形象可以吸引更多客...
2023-07-11经常会有一些朋友问到:做个网站多少钱?网站建设要多少钱?建立一个网站是怎么收费的?。。。等等诸如此类的问题,今天跟朋友们分享,做一个网站至少需要多少钱的成本。首先我们要了解网站的组成部分:域名,服务器,网站设计与程序开发;一、域名成本:啥是域名?域名就是我们经常看到的网址。百度的网址:;淘宝的网址:。这个网址是需要注册的,注册就是要收费的,并且还是到按年收费的。在哪可以注册呢?目前国内域名的注册商...
2019-12-12在介绍开发一个微信电商小程序商城到底需要多少钱之前,我们需要一个微信电商小程序的组成部分如下图所示有些朋友问:我用公司名义,申请了一个微信小程序,也交了300元认证费用,怎么看不到小程序里面的商城购物啊?其实这里面有个误区,微信小程序官方提供的这个认证,只是给您使用小程序的权利而已,至于小程序里面放购物商城,还是放企业介绍,这些微信官方是不提供的,需要找第三方开发平台服务商去制作,然后上传上去才能...
2019-12-12服务热线
0551-64935250
173-5299-0310
177-1819-5595
微信咨询
微信咨询
在线留言