【问题标题】:100% SSL or selective SSL, JSONP ... and no errors?100% SSL 或选择性 SSL、JSONP ... 并且没有错误?
【发布时间】:2010-08-31 16:28:44
【问题描述】:

我想征求您深思熟虑的意见,以帮助我为我的 Ajax 应用在以下两种来源政策之间做出决定:

  1. 从 HTTPS 加载我的所有资产://www.mydomain.com
  2. 另外:Ajax 很简单。同源策略没有问题。
    另外:PUT 方法提供了大量的有效载荷。
    另外:网络错误信息可以反馈给用户。
    减号:服务器需要更多的汗水来加密构成网站的所有渣滓。浏览器需要更多的精力来解密这一切。总体上较慢的用户体验。
  3. 通过 HTTP: //www.mydomain.com 加载大部分垃圾并使用 HTTPS: //www.mydomain.com 仅用于敏感数据交换。
  4. 另外:作为浏览器的用户体验更快,更重要的是,我的服务器执行的密码学更少。 另外:通过 JSONP 变通到 SOP (*),Ajax 仍然很容易。
    减号:JSONP 上的 GET 方法将有效负载限制为 2K - 可能会成为问题。
    大减:找不到任何方法从网络错误(任何类型的)后的标头中获取状态响应。用户信息不能超出“我的坏”。

有什么想法吗?

(*) 顺便说一句,如果有人能给我一个由同一域上的协议切换引起的安全漏洞的示例,我会真的感激不尽。我知道这些是不同的服务器,但那又​​如何呢?他们在我的域上。我控制他们。我不明白这个问题。

【问题讨论】:

    标签: ajax ssl jsonp


    【解决方案1】:

    使用 SSL。您是否对 SSL 的性能损失进行了基准测试?一般来说,现代计算机速度很快,SSL 加密/解密开销可以忽略不计。有关该主题的一些讨论,请参阅How much overhead does SSL impose?

    不必使用 JSONP,能够使用 HTTP PUT,以及您概述的所有其他好处都比我书中的几个 cpu 周期更有价值。

    【讨论】:

    • 感谢您为我恢复这些链接。关于 SSL 会话的缓存以及具有许多客户端的 SSL 服务器如何需要大量内存,有一个有趣的评论。但我认为选择性 SSL 根本无济于事。因为我偶尔需要 SSL,所以无论如何我都会有那个缓存。我也会在最初的握手中付出最高的代价。
    【解决方案2】:

    关于漏洞,我在another answer中放了例子:

    似乎不希望维护 HTTP和HTTPS之间的会话使用 相同的 cookie 或 URL 令牌。

    想象一下您是用户的情况 登录,使用给定的 cookie(或 URL 令牌)来回传递每个 电子商务中的请求/响应 网站。如果中间有人 能够读取该cookie,然后他可以 登录到 HTTP 或 HTTPS 变体 与它的网站。即使无论什么 合法用户正在做的事情就结束了 HTTPS,攻击者仍然可以 访问该会话(因为他也 将有合法的cookie)。他 可以看到像购物车这样的页面, 付款方式,也许改变 收货地址。

    传递某种形式的 HTTP 会话和 HTTPS 会话(如果您使用 会话),但将它们视为一个 同样会导致一些 脆弱性。创建一次性 查询参数中的标记只是 过渡可能是一个解决方案。你 但是应该将它们视为两个 单独的经过身份验证的会话。

    此漏洞可能发生 有时与使用混合的网站 HTTP 和 HTTPS 内容(某些 Firefox等浏览器会给你 发生这种情况时发出警告,尽管 大多数人倾向于禁用它 第一次弹出)。你可以有 您的主要 HTTPS 会话 cookie 页面,但该页面包含图像 用于公司徽标,通过普通 HTTP。 不幸的是,浏览器会发送 两者的 cookie(所以攻击者 那么就可以使用cookie了)。我有 看到它发生了,即使图像在 问题甚至不存在( 浏览器将发送请求 cookie 到服务器,即使它 返回 404 未找到)。

    关于使用 SSL/TLS 的开销,this article by Google engineers 应该是有趣的,更具体地说:

    SSL/TLS 的计算成本不再高昂。

    【讨论】:

    • 感谢 Bruno,但我不同意:我使用“secure=true”创建我的 HTTPS PHPSESSID,从而完全避免了(意外以纯文本传输此标识符)的问题(浏览器仅发送 cookie HTTPS)。所以,不,我仍然没有看到漏洞。我只对非会话垃圾使用 HTTP。装饰品等
    • 只需阅读 Google 的资料。这是一个很棒的作品。为它添加了书签。非常感谢。
    • 确实,问题出在不安全的 cookie 上。原则上,如果您不需要对 HTTP 流量进行身份验证,则可以。那么,混合内容的pb就是用户很难知道哪些元素是安全传输的。您不能真的期望用户通过源代码并检查是否通过 HTTPS 以及应该是什么。如果网站按照您的建议设计正确,应该没问题,但是浏览器很难检测到这一点并向用户发出适当的警告。不幸的是,在许多网站上,混合内容警告反映了一个实际问题。
    • 我现在已经将我所有的东西都切换到了 HTTPS,当 FF 发布混合警告时,我起初感到困惑。然后我意识到我正在做一个源自 HTTP 的 Google 混搭。在这一点上,我有 100mio 平均乔斯:草皮,无论如何加载 - 并且不要再问了。无论如何,这对我来说具有讽刺意味:从某个未知的第三方(FF 可以)加载一些 .js 文件肯定比从HTTP://mydomainHTTPS://mydomain 发出 Ajax 请求更危险(无论如何——FF 不行)。我认为 SOP 对协议更改过于严格......
    猜你喜欢
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    • 2019-03-18
    • 2016-05-20
    • 2021-02-27
    • 2017-10-12
    • 1970-01-01
    • 2023-01-15
    相关资源
    最近更新 更多