清除 chrome 的 HSTS 307 缓存

现代浏览器和网页服务器都开始支持 HSTS 功能,即自动将不安全的 HTTP 请求使用 307 Internal Redirect 跳转到 HTTPS 请求。

但是,用户的第一次访问还是不安全的。简单的说,在发生 307 的时候,用户可能就已经将用户名和密码暴露了。因为此时还是 HTTP 请求。

而且,这个第一次还可能是每次浏览器启动的时候,也就是说,可能每天都会发生,甚至多次。

所以,chrome 会自动记住每个域的 HSTS 设置。使得 HSTS 只是理论上的第一次暴露,后来就不经网页服务器返回,浏览器查询本地数据,直接伪造 HSTS 307 跳转到安全的 HTTPS,避免敏感数据的暴露。

很遗憾的说,这个很贴心的功能有时会造成麻烦。也就是说,一旦网页服务器设置了 HSTS,浏览器记住了。那么,将不会再访问该域的 HTTP 了。即使是网页服务器端已经修改了相关配置。原因当然是,这个记住是浏览器本地的。

还好,chrome 有暴露一些内部信息。不然就只有彻底删除浏览器才能清除。。。

在地址栏打开 chrome://net-internals/#hsts 下方的 Query domain 可以查询指定的域是否有 HSTS 记录,存在的话,在 Delete domain 删除即可。

2 Responses to “清除 chrome 的 HSTS 307 缓存”

  1. 成诺说道:
    Google Chrome 68.0.3397.0 Windows 8.1 x64 Edition
    Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3397.0 Safari/537.36

    请示并不然,chrome://settings/clearBrowserData,可以清除掉hsts的信息的

    • Griffin说道:
      Safari 11.1.2 Mac OS X  10.13.6
      Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1.2 Safari/605.1.15

      并不能

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据