子域上的第三方代码

时间:2016-08-09 19:18:55

标签: cookies xmlhttprequest subdomain xss

作为域example.com的所有者,许多内容向第三方公司提供子域名所带来的安全风险。我们不想共享任何内容,第三家公司可以完全控制托管子域网站的应用程序和计算机。

我主要关注的是:

  1. 共享Cookie
  2. 我们有cookies .example.com,因此也会在请求中发送到子域名。我们是否有可能将A记录指向反向代理,我们剥离cookie并将请求发送给没有它们的第三方提供商?

    1. 从主域加载内容
    2. 是否可以将document.domain设置为example.com并对example.com执行XMLHttpRequest?

      1. 跨站点脚本
      2. 我想由于相同的原始政策,这不会有问题。子域被视为单独的域?

        还有其他安全问题吗?

1 个答案:

答案 0 :(得分:1)

  

我们有cookies .example.com,因此也会发送   请求子域名。我们是否有可能将A记录指向   我们剥离cookie并将请求发送到第三方的反向代理   没有他们的派对提供者?

好主意,你可以这样做,但是你还需要设置HttpOnly标志,否则他们就能用JavaScript检索它们。

  

是否可以将document.domain设置为example.com并执行   XMLHttpRequest到example.com?

不,Ajax的子域被视为不同的Origin。请参阅this answer

  

我想由于相同的原始政策,这不会有问题。   子域被视为单独的域?

JavaScript代码可以与其他子域互动 - 但只能与您的网站合作。您还需要设置document.domain = 'example.com';如果您不这样做,您就可以抵御此威胁。

请参阅here

  

使用document.domain允许子域访问其父域时   安全地,您需要将document.domain设置为两者中的相同值   父域和子域。即使这样做,这也是必要的   所以只需将父域设置回其原始值即可。   如果不这样做,可能会导致权限错误。

  

还有其他安全问题吗?

你需要注意饼干中毒。如果evil.example.com.example.com设置了您的域认为自己设置的非host-only Cookie,那么恶意Cookie可能会用于您的网站。

例如,如果您将Cookie的内容显示为HTML,则可能会引入XSS。此外,如果您正在使用double submit cookies CSRF prevention method恶意域名,则可以设置自己的Cookie值以实现CSRF。请参阅this answer