同一应用程序的不同子域可以防止像XSS这样的恶意攻击吗



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

一个:member.myapp.com这是所有成员之间共享的区域(他们可以在这里登录和管理自己的帐户)

第二:每个成员在子域上都有自己的网站,如下所示:member1.myapp.commember2.myapp.com[/strong>、member 3.myapp.com

让我们想象一下,user1.myapp.com在他的网站上运行恶意js代码,member.myapp.com是否会受到XSS或其他攻击的影响?

他们可以设置members.myapp.com可以读取的cookie,因此,如果他们是members.myapp.com上的任何coookie处理漏洞,那么他们可能会利用这些漏洞。cookie中毒的一个例子可能是会话固定。

除非两个域都选择了,否则XSS是不可能的。也就是说,它们都必须包含以下代码。

document.domain = 'myapp.com';

除非members.myapp.com正在执行此操作,否则不会在子域之间共享Origin。

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并登录到他们的管理员级别帐户。但是,由于攻击者在members.myapp.com可以读取的cookie中向攻击者提供了会话ID(123456)(如在myapp.com级别设置的),因此攻击者现在以管理员身份登录。即攻击者已设法使管理员共享其会话,因此当管理员登录时,共享其会话的攻击者也会登录

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

最新更新