我有一个包含 2 个子域的域,如下所示:www.domain.com 和 secure.domain.com(带 ssl)。www 子域将运行 vbulletin(容易受到 xss 攻击),并且安全子域背后的网络服务很好,更安全,并且对攻击更敏感,因为那里涉及真钱。domain.com 是 301 重定向到 www.domain.com。现在我想在不影响安全子域的安全性的情况下对这两个服务进行单点登录。在我看来,有两种方法可以做到这一点:
使用 OpenID 并在认证成功后,将 cookie 域分别设置为子域,例如 .www.domain.com 和 .secure.domain.com,这样secure.domain.com cookie 就不会发送给攻击者,以防入侵www.domain.com
只允许用户从 secure.domain.com 登录并设置 2 个 cookie,1 个 .domain.com 用于无缝认证 www.domain.com,另一个 cookie 到 .secure.domain.com 以验证用户已通过身份验证安全子域。
我的理解是,当涉及到单个域及其子域上的多个 Web 应用程序的 sso 时,在顶级域(例如 domain.com)上运行任何应用程序将是一个潜在的安全风险,因为顶级应用程序将始终被发送所有子域和子域设置的cookies将能够设置和接收顶级域的cookies。
问题是:我的假设是正确的还是我错过了什么?