如果您无法控制第二个原点,是否可以规避相同的原产地政策?

时间:2012-05-21 21:31:52

标签: javascript

SO post列出了许多绕过这种政治的方法。

但是,当你无法访问第二个来源时,我无法判断这些是否适用。

特别是这一个,第三个回答,你插入一个脚本,调用脚本形成第二个原点。

<script src="http://..../someData.js?callback=some_func"/>

但总的来说,当你在原籍方面时,这些方法中的任何一种方法都允许规避......并且需要访问原产地2吗?

3 个答案:

答案 0 :(得分:2)

显然这是不可能的,否则政策将毫无用处。这就是阻止你从第三个主机中提取数据,这正是你想要做的。

请注意,浏览器不了解“私有”本地网络的一部分以及“公共”全球互联网的一部分。因此,此策略的存在是为了防止任意Javascript代码访问本地网络上的资源。

答案 1 :(得分:2)

是的,您可以在不控制第二台服务器的情况下绕过同源策略,但如果没有第二台服务器所有者的配合,您就无法做到。通常,如您的示例所示,这是通过与JSONP约定合作完成的。如果不通过第一个服务器将请求代理到第二个服务器,则没有其他方法可以做到这一点。

答案 2 :(得分:0)

不,这就是重点。只有当服务器通过CORS或类似JSONP的方式允许它时,才能关闭SOP。

插入scriptlet是一种攻击(无论你的意图是否合适)。如果我拥有一个域名并且有人这样做,他们将被禁止并向当局报告。

您最接近的是使用服务器端代理(即让您的js向您的服务器发出请求,然后向第三方发出请求)。