我一直在寻找一种方法来确保我的网络服务器能够抵御中间人攻击。即使我在安全警告后选择继续,Google Chrome 和 Firefox 似乎也会阻止对我的服务器的请求。我正在通过使用 Charles 代理拦截 Https 流量来测试此功能,而无需信任 Mac 上的 Charles 证书。
当我使用 Safari 运行相同的测试时,如果我选择忽略安全警告,它会让我通过,我希望一定数量的用户会这样做。因此,似乎需要更多配置来锁定 Safari 流量。我知道这是可能的,因为当尝试使用相同的场景导航到 github.com 时,我收到以下消息:
有人知道 GitHub 正在做什么来阻止不受信任的连接上的 Safari 流量吗?
最佳答案
Looks like Safari 正在支持HSTS并且 github 正在使用它。他们的 HTTP 响应包含以下 header :
Strict-Transport-Security:max-age=31536000; includeSubdomains; preload
这样,支持 HSTS 的浏览器就知道在可预见的时间内只能通过 https 访问该网站,并且任何仅使用 http 的尝试都将由浏览器自动升级。
除了仅在第一次访问网站后才起作用的基本 HSTS 之外,github 还添加了 preload
指令。这告诉浏览器制造商,github 喜欢包含在浏览器附带的预加载 HSTS 列表中,这样即使用户以前从未访问过该网站,浏览器也会应用 HSTS。请参阅HSTS Preloading了解更多信息。
关于security - 保护 Web 服务器免受 Safari 中的 MITM 攻击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36504363/