在 Safari 中保护 Web 服务器免受 MITM 攻击

Posted

技术标签:

【中文标题】在 Safari 中保护 Web 服务器免受 MITM 攻击【英文标题】:Securing web server against MITM attack in Safari 【发布时间】:2016-07-29 23:57:39 【问题描述】:

我一直在寻找一种方法来确保我的网络服务器能够抵御中间人的攻击。即使我在安全警告之后选择前进,Google Chrome 和 Firefox 似乎确实可以阻止对我的服务器的请求。我正在通过使用 Charles Proxy 拦截 Https 流量来测试这一点,而无需信任我 Mac 上的 Charles Cert。

当我使用 Safari 运行相同的测试时,如果我选择忽略安全警告,它将让我通过,我希望一定数量的用户会这样做。因此,似乎需要更多配置来锁定 Safari 流量。我知道这是可能的,因为在尝试使用相同场景导航到 github.com 时,我收到以下消息:

有人知道 GitHub 正在做什么来阻止不受信任的连接上的 Safari 流量吗?

【问题讨论】:

【参考方案1】:

Looks like Safari 支持HSTS 并且 github 正在使用它。他们的 HTTP 响应包含以下标头:

Strict-Transport-Security:max-age=31536000; includeSubdomains; preload

通过这种方式,支持 HSTS 的浏览器知道在可预见的时间内只能使用 https 访问该站点,并且任何仅使用 http 的尝试都将由浏览器自动升级。

除了基本的 HSTS 仅在第一次访问该站点 github 后才有效之外,还添加了 preload 指令。这告诉浏览器制造商,github 喜欢包含在浏览器附带的预加载 HSTS 列表中,因此即使用户以前从未访问过该站点,浏览器也会应用 HSTS。请参阅HSTS Preloading 了解更多信息。

【讨论】:

以上是关于在 Safari 中保护 Web 服务器免受 MITM 攻击的主要内容,如果未能解决你的问题,请参考以下文章

如何保护 Webservice 免受拒绝服务攻击?

使用 Spring Security 保护 Web 应用程序免受 CSRF 攻击

如何保护 Web 应用程序免受 cookie 窃取攻击?

保护旧的 Web 应用程序免受 CSRF 攻击,而无需在所有表单中添加隐藏输入

如何使用公钥保护 Web API 免受未经授权的访问?

如何获取用户当前的国家并保护它免受操纵?