我正在编写用于诊断网络服务的 Chrome 打包应用程序。我希望能够向 URL 发送 GET 请求并查看响应中的 header 和数据。
我的问题是,如果用户在使用我的应用程序之前访问了一个设置了 HSTS header 的网站,那么我的应用程序将无法向该域的 http://URL 发送 GET 请求,因为 Chrome 会自动转换 http://在发送请求之前指向 https://的 URL。
我能做些什么来防止这种情况发生吗?我查看了 webrequest API 和 webview 标签,但没有发现任何可以让我忽略 HSTS 的内容。
是否可以使用 https://developer.chrome.com/apps/sockets_tcp为此(我需要能够支持 http、https 和 gzip 数据)?
最佳答案
Is there anything at all I can do to prevent this?
可能不会。如果您已经测试过 <webview>
并与浏览器共享 HSTS 列表,然后网络层将透明地为您重写。
Is it possible to use
chrome.sockets.tcp
for this?
从技术上讲,是的,HSTS 应该无关紧要。实际上,您需要从头开始实现类似 wget+SSL+gzip 的东西(在 JS、NaCl 或 native 主机中——但在后一种情况下,您实际上并不需要内置套接字)。
关于javascript - 忽略 Chrome 应用程序/扩展中的 HSTS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38278984/