【问题标题】:Internet Explorer Javascript Access Document Cross Domain/disable Same Origin settingInternet Explorer Javascript 访问文档跨域/禁用同源设置
【发布时间】:2014-03-05 06:38:25
【问题描述】:

我有一个 Intranet 站点信息亭,它需要打开一个弹出窗口到另一个域中的另一个网站。我希望能够知道他们是否正在积极使用该弹出窗口,如果没有,请在一段时间后关闭它。

我需要在 window.open JS 命令之后访问 popup.document。由于跨域保护和同源策略,我不能。

Google chrome 可以使用标志 --disable-web-security 显式关闭此功能。我试过使用The Answer here,但它似乎不起作用。在 Visual Studio 中调试时出现“拒绝访问”。目前使用的是 IE10。

TL;DR 如何访问使用 javascript window.open 打开的弹出式文档对象并为受信任的站点显式禁用 IE10 的同源策略。

我无权修改其他站点服务器上的任何内容,它是一个合作站点。此外,我尝试进入安全选项卡并关闭保护模式并启用 Internet/Intranet/受信任站点的所有设置(禁用 Xss 过滤器)。它不起作用。

没有人在阅读这个问题。 我无权更改其他网站被投票的两个都认为我有。如果我可以更改其他站点,这将很容易。 这是一个浏览器安全设置问题。

【问题讨论】:

  • 你控制远程站点吗?
  • 您可以在 Internet 选项的“安全”选项卡中禁用它。但是,这是一个非常糟糕的主意。
  • 我们和远程站点是合作的,我们所有的服务都经过它,但是不能修改它。

标签: javascript internet-explorer-10 same-origin-policy


【解决方案1】:

http://blog.cakemail.com/the-iframe-cross-domain-policy-problem/

对远程站点使用嵌入式 iframe 是最简单的解决方案。这篇文章提到了一些IE特有的js函数。

【讨论】:

  • 到目前为止,您是唯一真正了解我无权访问其他网站这一事实的人。不幸的是,我发现这些解决方案在较新的 IE 中不起作用。
  • 很抱歉。新的 HTML5 window.postmessage 或 easyXDM 有什么好运气吗?一个非常粗略的解决方法是使用 iframe 方法,每隔 10 分钟左右弹出一个警报,以确认此人仍在工作。您还可以发挥创意,为远程域做一个抽象前端,基本上让他们 100% 的时间使用您的系统。
  • 我真的希望 IE 能够像 Chrome 一样简单地关闭安全性。它的设置暗示它可以,从我读到的内容来看,它曾经......哦,好吧。有 50 个代表。
  • 这是最接近的解决方案,并且适用于一些远程站点,因此我接受了它。虽然从本质上讲,它并没有解决我的问题,因为远程站点会检查它是否包含在 iframe 中并重定向。
【解决方案2】:

假设您可以控制其他站点,我建议您使用 JSONP 的概念 即

在打开新窗口时,传递一个 randomSessionKey 的名称

即 var skeyval=Math.random()*100000; window.open("otherdomain.com?rsKey="+skeyval,"mywindow");

以上执行后,使用 JSONP 不断检查 skeyval 使用 JSONP 的值(指向远程域)。

在您的远程站点中,只要有用户交互,即单击、按键、... 使用状态文本更新由“rsKey”参数标识的随机生成的会话密钥的状态,例如:活动、空闲。

【讨论】:

  • 我无权修改其他站点。如果我这样做了,这将不是问题。
【解决方案3】:

在 JSONP 的同源策略中有一个小例外,您可以让客户端调用外部 JSON API,但不能使用他们的 cookie 调用他们的 PayPal 帐户。对于这种情况,这是一个不错的、安全的小漏洞。

您可以使用它在您的站点和远程站点之间进行通信(假设您可以控制远程站点,如果您不这样做,那么您基本上不走运)。您的服务器可以向远程站点发送特定用户状态的请求,并且远程站点可以在每次提供输入时更新该用户的状态。如果您的站点查询远程站点并且远程站点处于空闲状态,您可以关闭远程窗口(如果您使用 iframe、部分视图或类似的东西,最简单)。

【讨论】:

  • 我无权修改其他站点(或您所说的控制权)。如果我这样做了,这将不是问题。
猜你喜欢
  • 2013-03-23
  • 2013-05-27
  • 2019-06-17
  • 2014-01-23
  • 2013-12-19
  • 2013-02-27
  • 2014-03-15
  • 2013-09-17
  • 1970-01-01
相关资源
最近更新 更多