2011-08-15 94 views
1

我有一个域名,包含2个子域名,如:www.domain.com和secure.domain.com(带有SSL)。 www子域名将运行vbulletin(容易出现xss攻击),而安全子域名后面的web服务更好,更安全以及对攻击更为敏感,因为真正的金钱涉及到了。 domain.com 301重定向到www.domain.com。现在,我希望在不影响安全子域的安全性的情况下对这两种服务进行单点登录。在我看来,有2种方式这样做的:了解与顶级域名及其子域名的cookie域名关系

  1. 使用OpenID和认证成功后,设置cookie的域分别只子域,例如.www.domain.com和.secure.domain.com使secure.domain.com cookies不会被发送到攻击者,以防入侵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。

问题是这样的:我的假设是否正确或错过了什么?

回答

1

您可以将Cookie设置为secure,并且仅通过SSL连接发送(不管客户端连接到哪个域)。当然,更复杂的情况也是可能的。

+0

您是否说通过SSL连接发送的安全cookie不容易受到XSS攻击? – jaz

+0

@jaz我的意思是说,当你设置cookie的“安全”属性时,它不会被发送以响应通过非安全连接发出的请求。这只是一个注释(你*可能*可能会丢失)。一般来说,你的假设是正确的 - 如果cookie允许访问这两个站点,那么攻击者可以通过www。* –

+0

获得安全。是的,看起来安全的cookies使得cookie更容易被xss窃取,因为攻击者需要一个有效的ssl证书。我也发现了有关httponly饼干哪些应该是有用的,尽管并非所有的浏览器都支持它。 – jaz