绕过同源政策的用例

时间:2017-09-21 08:44:38

标签: javascript html same-origin-policy

我遇到以下情况:

  1. 我在学术界工作,我的机构有一个网页。出于内部网的原因,我无法通过本地PC上的SSH访问它。

  2. 我将在另一个国家/地区设立临时职位,我将维护我的网页。

  3. 我希望旧网页不久之后会包含指向新网页的链接。

  4. 以下“精彩”的想法来到我身边:

    1. 我将在我的网页托管的每个服务器上创建一个单独的文本文件,每个服务器都包含唯一标识服务器的代码(出于模块化原因而分开)。

    2. 我将在公共文本托管服务器上创建一个文本文件,其中包含:当前服务器的代码和匹配代码与URL的列表。

    3. 在我的网页的每个实例的(通用)HTML中,我将放置一个JavaScript代码检查两个文本文件,如果它们都被读取而没有错误,并且本地当前服务器与全局当前服务器不同,然后用重定向链接替换大div的内部HTML。

    4. 事实证明,由于同源策略,这不起作用。你有什么建议吗?谢谢。

1 个答案:

答案 0 :(得分:0)

有许多标准方法可以处理同源政策问题。您的情况很简单,因为所需的数据不是秘密的,可以在没有身份验证的情况下公开(我假设)。

最好的方法是使用CORS,这是一种允许服务器指定哪些来源可以访问其数据的标准。因此,步骤2中的公共服务器将具有允许从所有源进行访问的CORS配置。所有现代浏览器都会尊重该值并允许请求继续进行。

不需要任何服务器配置的替代方案是使用JSONP。在这种情况下,不是XHR访问的文本文件,而是使其成为由脚本标记访问的Javascript文件(不受SOP限制)。

您可以找到很多关于这些和其他同源政策解决方法的文章和教程。