通常配置burpsuit谷歌浏览器证书及HSTS问题处理,我们在访问一个网站时,一般只在浏览器中输入网址,而不输入协议名称。比如你访问子凡的雷雪博客,如果你直接输入URL或者时间,这就给了中间人攻击的机会,重定向可能会被破坏,从而将你引导到一个恶意站点而不是应该访问的加密页面。HTTP 严格传输安全 (HSTS) 功能使 Web 服务器能够告诉浏览器永远不要使用 HTTP 访问,自动将所有对站点的 HTTP 访问替换为浏览器端的 HTTPS 访问。
即使你打开网站看到整个网站的HTTPS状态,你也是跳转到这个地址,因为我们在服务器上做了301/302。HTTPS网站的做法是为用户的HTTP访问做一个302跳转到HTTPS,重复这个过程。新连接。(接入流程如下)
那么问题来了。这个跳转的过程有两个缺点:
HSTS的出现就是为了解决这些问题。HSTS的作用除了节省HTTPS通信RT和强制使用HTTPS外,还包括:
HSTS的工作机制可以描述为:服务器配置支持HSTS后,会在返回给浏览器的HTTP头中携带HSTS字段。浏览器获取此信息后,会在内部将所有HTTP访问请求307转为HTTPS,无需任何网络进程,从而提高兼容性。这种机制对于不支持 HTTPS 的搜索引擎也非常友好。实践。
目前,大多数浏览器都很好地支持了 HSTS。每个浏览器和版本的具体支持可以在网站上查看。但是 HSTS 有缺陷,客户第一次访问网站时,HSTS 不起作用。为了解决这个问题,有必要了解我们将在下面解释的HSTS列表。
什么是 HSTS 清单?
HSTS 列表是浏览器中的 HSTS 预加载列表。此列表中的网站在浏览器访问时会自动转换为 HTTPS。,, Edge 浏览器也会使用这个列表。
加入HSTS列表的要求:
同时输出的HSTS响应头需要满足以下条件:
满足 HSTS 列表的典型响应头是:--: max-age=; ;
从申请到批准的时间可能从几天到几周不等。值得一提的是,从批准到正式添加版本需要一定的时间,因为要经过,dev,beta等等。
HSTS的优势和必要性
简单来说就是强制客户端使用HTTPS访问页面。有效避免了中间人对80端口的劫持。但是这里有一个问题:如果用户处于被劫持状态,并且没有访问过源站,那么源站就没有办法为客户端种植-- (都被中间人拦截了)。
启用 HSTS 不仅可以有效防止中间人攻击,还可以为浏览器节省一个 302/301 重定向请求,非常有利可图。我们的很多页面都难免有http链接,比如帮助中的链接,操作填写的链接等等,这些链接的请求都会经过一个302,用户也是一样,收藏夹中的链接也可能是保存在http中。.
307 状态码
对于 GET 和 HEAD 等幂等请求方式,302、303、307 没有什么不同,但是对于 POST 就不同了。大多数浏览器都会用302将POST请求转换为GET。而303是规范强制POST转换为GET请求的规范,请求地址在中,307不同,规范要求浏览器继续POST内容到该地址.
HSTS中可以缓存307,缓存时间取决于max-age。一般建议缓存1年以上。
HSTS的坑
HSTS 无法处理纯 IP 请求。例如,即使在响应头中设置了 STS,浏览器也不会关心(未测试)。HSTS只能在80和443端口之间切换,如果服务是8080端口,即使设置了浏览器证书错误,一般都会提醒有安全隐患,但还是给出目标页面的链接,而HSTS没有目标页面入口,所以一旦证书配置错误,就非常大了如果服务器的HTTPS没有配置,开启STS响应头,还设置了很长的过期时间配置burpsuit谷歌浏览器证书及HSTS问题处理,那么直到你服务器的HTTPS配置后,用户将无法连接到您的服务器,除非 max-age 已过期。HSTS 可以让你的网站达到 A+
写在最后:HSTS在全站HTTPS下有很大的正向效果,推荐使用。
这篇文章是科普文章,所以子凡只是做一个简单的科普,后面会有具体的教程和使用方法。欢迎来到泪雪博客。
除非另有说明,均为雷雪博客原创文章,禁止任何形式的转载
这篇文章的链接:
评论留言