假设您有一个webapp,它为用户在子域(例如:awesome.super-cms.com
)上提供了自己的站点,并允许他们编辑HTML。进一步假设您在通配符子域cookie(“*.super-cms.com
”)中设置SessionID。
管理evil.super-cms.com
的用户可以轻松编写从其他super-cms.com用户那里获取SessionID的JavaScript:
var session = $.cookie('SessionID');
// Now send `session` to evil.com
我的问题是:攻击者可以使用这些收集的SessionID来做坏事吗?例如,欺骗身份验证是否是另一个用户?
答案 0 :(得分:4)
是的,他们可以。这家伙似乎有一篇文章概述了例子:http://skeptikal.org/2009/11/cross-subdomain-cookie-attacks.html
您可以设置Cookie的域名以防止这种情况发生。它在cookie中设置为;domain=...
,您的给定语言可能会直接执行此操作。
答案 1 :(得分:0)
攻击者可以使用这些收获的SessionID来做坏事吗?
是的,但这是一个很容易阻止的事情:
我认为你是在SSL之上运行它(否则它已经对MITM攻击已经开放),在这种情况下,设置仅SSL标志也是一个好主意。
请注意,您不能依赖客户端IP地址不会更改(某些ISP使用负载平衡代理)会话,但浏览器标头不会更改 - 但这不会有助于某人的攻击知道他们在做什么。
下进行。