同一原产地政策的威胁模型是什么?

时间:2011-07-19 08:26:05

标签: xss security same-origin-policy cors

http://en.wikipedia.org/wiki/Same_origin_policy

相同的源策略可防止一个站点的脚本与另一个站点通信。维基说这是一个“重要的安全概念”,但我不清楚它会阻止什么威胁。

我知道来自一个网站的Cookie不应该与另一个网站共享,但可以(并且是)单独执行。

CORS标准http://en.wikipedia.org/wiki/Cross-Origin_Resource_Sharing提供了绕过相同原始政策的合法系统。据推测,它不允许同一起源政策旨在阻止任何威胁。

看看CORS我更不清楚谁会受到保护。 CORS由浏览器强制执行,因此它不会保护任何站点免受浏览器的攻击。这些限制是由脚本想要与之交谈的网站决定的,因此它似乎无法保护用户免受任何网站的攻击。<​​/ p>

那么原因政策是什么?

3 个答案:

答案 0 :(得分:6)

文章@EricLaw提到,“Same Origin Policy Part 1: No Peeking”很好。

这是一个简单的例子,说明为什么我们需要'相同的原产地政策':

可以使用iframe在“您自己的网页”中显示其他网页(“内嵌框架”会在框架中放置另一个HTML文档)。假设您显示www.yourbank.com。用户输入他们的银行信息。如果您可以阅读该页面的内部HTML(需要使用脚本),您可以轻松阅读银行帐户信息,并繁荣发展。安全漏洞。

因此,我们需要相同的原始政策,以确保一个网页无法使用脚本来阅读其他网页的信息。

答案 1 :(得分:1)

例如,它可以防止Farmville检查您的银行账户余额。或者,更糟糕的是,弄乱你要发送的表格(输入PIN / TAN后),这样他们就能得到所有的钱。

CORS主要是网站的标准,确保它们不需要这种保护。它基本上说“任何网站的脚本都可以与我交谈,没有任何安全措施可能被破坏”。所以它确实允许SOP禁止的事情,在不需要保护的地方和跨域网站是有益的。想想网状物。

答案 2 :(得分:1)

相同原始策略的目的是避免恶意站点M使用{的用户权限(即授权cookie)从可信站点A 读取信息的威胁{1}} 的。它是一种浏览器策略,而不是服务器策略或HTTP标准,旨在降低联系网站A时来自网站A的其他浏览器策略发送Cookie的风险。

请注意,没有任何内容可以阻止A在浏览器之外访问M。它可以发送任意数量的请求。但它不会在A的未知用户的权限下这样做,这可能会在浏览器中发生。

另请注意,该政策会阻止来自A读取M页面。它不保护A服务器免受请求的影响。特别是,浏览器将允许跨域A - Cookie和全部从POSTSM。这种威胁称为Cross-Site Request Forgery;它不会被同源策略所缓解,因此服务器保护自己不受此限制。