关于相同的原产地政策....我可以这样做吗?

时间:2011-08-23 15:02:00

标签: javascript security

我在siteB中有一个siteA和JS。 siteB JS获取siteB域以在AJAX POST请求中返回JSON。然后,基于siteB域中的信息,并通过JS中的一些创建文档技术将siteB JS注入到站点A网站中。如果违反同一原产地政策,还有其他建议吗?谢谢。

(我只有权控制siteB。)

3 个答案:

答案 0 :(得分:4)

人们在处理这类事情时通常会考虑三个起源:

  1. 网页(http://example.com/)
  2. 脚本(http://example.net/foo.js)
  3. 数据(http://example.net/bar.json)
  4. 如果使用“相同”原点,那么在解决哪些问题时经常会产生混淆。 只有页面的来源和数据重要。脚本本身加载的地方无关紧要。

    在这种情况下:

    1. 页面:A
    2. 剧本:B(不相关)
    3. 数据:B
    4. 由于页面和数据来自不同的来源,您无法从页面中读取数据。

      由于您要发出POST请求:通过A代理HTTP请求。(JSON-P,其他经典的跨域Ajax技术,严格限于GET请求。)

      您还可以考虑使用Cross-Origin Resource Sharing,它允许您覆盖同源策略,但浏览器支持有限。

答案 1 :(得分:0)

您可以使用网桥服务器端。在站点A中的php / asp中创建一个文件,调用(如通过curl)你的其他站点B.

答案 2 :(得分:0)

您不能使用来自一个域的JavaScript来修改另一个域上的其他网站的内容。如果您控制两个站点(我希望您这样做),您可以使用B中的javascript将数据推送到站点B的服务器,然后使用服务器间通信来更新A的服务器,从而更新A的内容。