Security 同一应用程序的不同子域能否防止XSS等恶意攻击?

Security 同一应用程序的不同子域能否防止XSS等恶意攻击?,security,xss,same-origin-policy,Security,Xss,Same Origin Policy,在我的Rails应用程序中,我有2个子域 一个:members.myapp.com,这是所有成员共享的区域,在这里他们可以登录和管理他们的帐户 第二:每个成员在子域上都有自己的网站,如:member1.myapp.com、member2.myapp.com、member3.myapp.com等 假设user1.myapp.com在其站点中运行恶意js代码,members.myapp.com会受到XSS或其他攻击的影响吗 他们将能够设置members.myapp.com可以读取的cookie-因此

在我的Rails应用程序中,我有2个子域

一个:members.myapp.com,这是所有成员共享的区域,在这里他们可以登录和管理他们的帐户

第二:每个成员在子域上都有自己的网站,如:member1.myapp.com、member2.myapp.com、member3.myapp.com等


假设user1.myapp.com在其站点中运行恶意js代码,members.myapp.com会受到XSS或其他攻击的影响吗

他们将能够设置members.myapp.com可以读取的cookie-因此,如果他们在members.myapp.com上处理漏洞,那么他们可能会利用这些漏洞进行攻击。饼干中毒的一个例子可能是

除非两个域都选择加入,否则XSS是不可能的。i、 它们都必须包含以下代码

document.domain='myapp.com'; 除非members.myapp.com执行此操作,否则将不会在子域之间共享

cookie处理漏洞示例 如前所述,一种类型是

现在,假设攻击者访问members.myapp.com并获得一个随机会话cookie:set cookie:session_id=123456

然后,攻击者向管理员发送电子邮件,表示其域user1.myapp.com存在问题

攻击者在user1.myapp.com上托管了一些JavaScript代码:

document.cookie=session_id=123456;domain=myapp.com; 受害者myapp.com的管理员进入攻击者的页面并接收cookie

管理员随后进入members.myapp.com,并将日志登录到他们的管理员级别帐户。但是,由于攻击者在cookie中向攻击者提供了会话ID 123456,members.myapp.com可以读取该cookie,因为它是在myapp.com级别设置的,因此攻击者现在以管理员身份登录。i、 e.攻击者已成功使管理员共享其会话,因此当管理员登录时,共享其会话的攻击者也会登录


这只是cookie处理漏洞的一个示例。在这种情况下,系统应该在登录后发布一个新的会话cookie,以防止会话固定攻击。

谢谢您的回答,我接受了您的回答,但我仍然不太理解members.myapp.com上的coookie处理漏洞是什么意思!如果您能详细解释,我将不胜感激:Thanks@medBo:没问题。添加了示例。@SliverlightFox非常感谢您的解释,在ruby on rails中,当我登录memebers.myapp.com时,我进入了myapp.com,我注意到我不再登录,因为它无法读取members.myapp.com中的cookie,因为它们的作用域不同,另外,对于登录,我只使用默认情况下在rails中加密的会话。这还不足以保护我免受伤害吗?我还发现了一个与我的情况类似的帖子,你认为答案是正确的吗:@medBo:恐怕不是。正是攻击者将cookie设置为.myapp.com级别。当web服务器读取cookie时,它无法读取cookie的域,因此不会知道它是攻击者设置的cookie。在这种情况下,您需要在登录后创建一个新的会话ID。