3

我在域 A(我们控制)中有一个 Java Web 应用程序。此应用程序显示位于域 B(我们无法控制)中的另一个网站iframe。此外部网站最近已更新,要求用户登录后才能查看内容。他们为我们提供了一个 URL,该 URL 将自动将我们的用户登录到他们的网站。当我们在 Internet Explorer 中直接导航到它时,这个 URL 有效(我们会自动登录等)。

但是,显然Internet Explorer 进行了更新, 因此不允许跨域通信。所以现在当登录 URL 显示在 中时iframe,它没有成功登录(我猜它被阻止创建安全 cookie)。

此外,如果我们直接浏览到 URL 并获得适当的安全性,那么iframe该站点的任何元素都将不起作用(我猜它被阻止访问安全性 cookie)。

有谁知道解决这个问题?不能更改 Internet Explorer 的安全级别(由我们公司的系统管理员控制)。Internet Explorer 也是我们公司的标准,因此我们无法更改它(即使它在 Firefox 中运行良好)。

4

2 回答 2

10

当您说“网站的元素不起作用”时,这究竟是什么意思?

“跨域”交互在所有浏览器中一直受到限制。这被称为“同源策略”,它是网络安全的基础。您所指的 Internet Explorer 的“更新”限制了 IE,使得域 A 上的网页无法再导航域 B 页面的子框架。该限制已在 IE 中存在 7 年以上,并且在所有浏览器。此限制不会导致您的问题。

这里最可能的问题是子帧未能设置允许存储其 cookie 的 P3P 标头。StackOverflow 上可能有 30 个关于该问题的重复项。

要确定这是否是您遇到的情况,请尝试以下操作:

  1. 在 IE 中,单击工具> Internet 选项>隐私选项卡
  2. 将滑块设置为全部接受
  3. 清除您的 cookie
  4. 重新启动浏览器并重试该方案。

如果此更改解决了问题,则修复很简单:配置正在构建的页面以使用P3P响应标头指定其 cookie 策略。

如果这不能解决问题,请使用更多信息更新问题,以便其他人重现问题(例如流量日志、实时站点 URL 等)。

于 2013-09-13T17:58:35.410 回答
3

事实证明,这是登录站点不在受信任站点列表中的原因。让安全将其添加为受信任的站点并将其推送到所有公司计算机解决了该问题。

于 2013-11-20T16:38:25.927 回答