以前工作的 iframe 中出现“Chrome 检测到异常代码”错误

Posted

技术标签:

【中文标题】以前工作的 iframe 中出现“Chrome 检测到异常代码”错误【英文标题】:"Chrome detected unusual code" error in previously working iframe 【发布时间】:2017-12-20 15:22:09 【问题描述】:

我有一个运行良好的 php 页面,里面有一个 iframe。突然它在 Chrome 中停止工作并出现此错误:

Chrome 在此页面上检测到异常代码并将其阻止以保护您的个人信息...

知道怎么解决吗?

【问题讨论】:

不理解反对意见,这个问题在 porpoise 上含糊不清,因为它不依赖于页面代码,而是依赖于 Chrome 上的更改。请解释一下,如果您认为缺少某些内容,我可以改进它! 【参考方案1】:

看了一圈发现Chrome把X-XSS-Protection的默认实现改成了'X-XSS-Protection: 1; mode=block' (reference)

因此,最快的解决方案(并且涉及的代码更改最少)是通过从服务器发送值 0 来禁用 X-XSS-Protection。

这里是如何从 PHP 中做到这一点

header("X-XSS-Protection: 0");

【讨论】:

【参考方案2】:

Chrome 将其 X-XSS-Protection 的默认实现更改为 'X-XSS-Protection: 1; mode=block',主要是在 Chrome 版本 60 和 windows 10 PC 中发现此问题,请参阅以下与此问题相关的参考链接

https://bugs.chromium.org/p/chromium/issues/detail?id=702542

https://bugs.chromium.org/p/chromium/issues/detail?id=706038

https://productforums.google.com/forum/#!topic/chrome/4MUJd75N4Jw

【讨论】:

看起来已经在 Chromium 错误 702542 中为此提交了一个补丁,但谁知道这需要多长时间才能到达主流 Google Chrome。【参考方案3】:

这里的其他帖子提供了一个答案。但是他们都没有提供任何基于代码示例的解释,所以,我会尝试:

这是由显示 html 的网页引起的,该网页是 POST'd,当该 HTML 包含 JS 事件触发器时,例如:

<p class="someParagraph" onClick="doTheMagicThing();">

如果您有一个 iframe,它在 POST 或论坛中接收到这样的文本,并且您也显示了该文本,那么 Chrome 将发出错误(并有效地阻止该页面),除非您有X-XSS-Protection 标头已禁用。

自然地,像这样在独立组件之间传递大量 html 并不被认为是好的设计。

【讨论】:

以上是关于以前工作的 iframe 中出现“Chrome 检测到异常代码”错误的主要内容,如果未能解决你的问题,请参考以下文章

保护 iFrame - 只允许它在一个域上工作

在 Firefox 中淡入以前隐藏的 iframe

使用 JQuery 修改 iFrame 中内容的 CSS

防止模态视频 iframe 加载以前的视频 iframe

仅在 Chrome 上出现 iframe 高度问题

在线购物时 iframe 中的银行登录对话框,它是如何工作的?