同一个应用的不同子域能否防止XSS之类的恶意攻击?
Can different subdomains of the same app prevent malicious attack like XSS?
在我的 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
上的任何 cookie 处理漏洞,那么他们可能会利用这些漏洞。 cookie 中毒的一个示例可能是 session fixation.
除非两个域都选择加入,否则 XSS 是不可能的。即它们都必须包含以下代码。
document.domain = 'myapp.com';
除非 members.myapp.com
这样做,否则 Origin 不会在子域之间共享。
cookie 处理漏洞示例
如上所述,一种类型是 Session Fixation。
现在,假设攻击者访问 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,以防止会话固定攻击。
在我的 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
上的任何 cookie 处理漏洞,那么他们可能会利用这些漏洞。 cookie 中毒的一个示例可能是 session fixation.
除非两个域都选择加入,否则 XSS 是不可能的。即它们都必须包含以下代码。
document.domain = 'myapp.com';
除非 members.myapp.com
这样做,否则 Origin 不会在子域之间共享。
cookie 处理漏洞示例
如上所述,一种类型是 Session Fixation。
现在,假设攻击者访问 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,以防止会话固定攻击。