【问题标题】:Understanding cookie domain relationship with top level domain and its subdomains了解 cookie 域与顶级域及其子域的关系
【发布时间】:2011-08-15 22:50:53
【问题描述】:

我有一个包含 2 个子域的域,如下所示:www.domain.com 和 secure.domain.com(带有 ssl)。 www 子域将运行 vbulletin(容易受到 xss 攻击),并且安全子域背后的 web 服务很好,更安全,并且对攻击更敏感,因为那里涉及真钱。 domain.com 是 301 重定向到 www.domain.com。现在我想在不影响安全子域的安全性的情况下对这两个服务进行单点登录。在我看来,有两种方法可以做到这一点:

  1. 使用 OpenID 并在认证成功后,将 cookie 域分别设置为子域,例如 .www.domain.com 和 .secure.domain.com,这样secure.domain.com cookie 就不会发送给攻击者如果 www.domain.com 遭到入侵

  2. 仅允许用户从 secure.domain.com 登录并设置 2 个 cookie,1 个使用 .domain.com 用于无缝验证 www.domain.com,另一个 cookie 使用 .secure.domain.com 进行验证用户已通过安全子域进行身份验证。

我的理解是,当涉及到跨单个域及其子域上的多个 Web 应用程序的 sso 时,在顶级域(例如 domain.com)上运行任何应用程序都会存在潜在的安全风险,因为顶级域上的应用程序将始终发送子域设置的所有cookie,子域将能够设置和接收顶级域的cookie。

问题是这样的:我的假设是正确的还是我遗漏了什么?

【问题讨论】:

    标签: security cookies xss single-sign-on vbulletin


    【解决方案1】:

    您可以将 cookie 设置为secure,它将仅通过 SSL 连接发送(无论客户端连接到哪个域)。当然,更复杂的场景也是可能的。

    【讨论】:

    • 您是说通过 SSL 连接发送的安全 cookie 不易受到 XSS 攻击?
    • @jaz 我的意思是,当您为 cookie 设置“安全”属性时,它不会被发送以响应来自非安全连接的请求。这只是一个注释(您可能可能会丢失)。一般来说,您的假设是正确的 - 如果 cookie 授予对两个站点的访问权限,那么攻击者可以通过 www.* 获得安全。*
    • 是的,似乎安全 cookie 使通过 xss 窃取 cookie 变得更加困难,因为攻击者需要有效的 ssl 证书。我还发现了 httponly cookie,尽管并非所有浏览器都支持它,但它也应该很有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-17
    • 1970-01-01
    • 2011-04-30
    • 2015-07-04
    • 1970-01-01
    • 1970-01-01
    • 2017-02-13
    相关资源
    最近更新 更多