作为域名example.com的所有者,由于向第三方公司提供子域所带来的安全风险。我们不想共享任何内容,第三家公司将完全控制应用程序和托管子域站点的机器。
我主要关心的是:
我们有cookies .example.com,所以也会在请求中发送到子域。我们是否有可能指向一个记录来反向代理,在没有它们的情况下,我们剥离cookie并将请求发送给第三方提供者?
是否可以将document.domain设置为example.com,将XMLHttpRequest设置为example.com?
我想这不会有问题,因为同样的原产地政策。子域被视为单独的域吗?
还有其他安全问题吗?
发布于 2016-08-10 11:28:07
我们有cookies .example.com,所以也会在请求中发送到子域。我们是否有可能指向一个记录来反向代理,在没有它们的情况下,我们剥离cookie并将请求发送给第三方提供者?
好主意,您可以这样做,但是您也需要设置HttpOnly标志,否则他们将能够使用JavaScript检索它们。
是否可以将document.domain设置为example.com,将XMLHttpRequest设置为example.com?
不,Ajax的子域被视为不同的起源。见这个答案。
我想这不会有问题,因为同样的原产地政策。子域被视为单独的域吗?
JavaScript代码可以与其他子域交互,但必须与您的站点进行合作。您还需要设置document.domain = 'example.com';,如果您不这样做,您是安全的,不受此威胁。
请参阅这里
当使用document.domain允许子域安全地访问其父域时,需要在父域和子域中将document.domain设置为相同的值。这是必要的,即使这样做只是简单地将父域设置为其原始值。如果不这样做,可能会导致权限错误。
还有其他安全问题吗?
你得注意饼干中毒。如果evil.example.com在.example.com上设置了一个非主-只 cookie,您的域认为它已经设置了它自己,那么这个邪恶的cookie可能会用于您的站点。
例如,如果将cookie的内容显示为HTML,则可能会引入XSS。此外,如果您使用的是双提交cookies预防方法,一个邪恶的域可能能够设置自己的cookie值来实现CSRF。见这个答案。
https://stackoverflow.com/questions/38858777
复制相似问题