javascript - 绕过 iFrame 破坏脚本

标签 javascript google-chrome-extension

我正在开发一个 chrome 扩展,我想绕过 iFrame 检测(即 buster)脚本。

我能够绕过这个检测:

if (top !== self) {
   //break out
}

在顶部注入(inject)这段代码:

window.self = window.top;

但是如果我有这样的东西怎么办:

if (window != top) {
   //break out
}

如何重新定义 window

最佳答案

您不能重新定义 windowtop全局对象的属性

window本质上是对 window 的引用全局窗口对象的属性 ( window.window )。此属性被定义为不可配置和不可重写。您可以通过执行 Object.getOwnPropertyDescriptor(window, "window") 来验证这一点在控制台中。 configurable: falsewritable: false属性意味着任何修改它的尝试都将失败(返回值 false 或在严格模式下出错)。 window 的这种行为specification of the Window object 需要属性.

top窗口的属性也是不可配置和不可重写的,因此您也无法覆盖它。 (另一方面,parentself 可以被覆盖。)

您似乎在尝试找到一种普遍可用的方法来愚弄 framebusters。这对我来说似乎是一项不可能完成的任务。您也许能够以某种方式拦截 <script>元素并在代码执行之前从代码中删除 iframe 检测,但即使您成功地针对某些 framebusters 这样做了,总会有其他一些您的扩展不会处理。

关于javascript - 绕过 iFrame 破坏脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37643343/

相关文章:

Javascript 在 Firefox 中加载不正确

javascript - 将可绑定(bind)复选框列添加到 Internet Explorer 中的网格

javascript - 是否可以从 Chrome 中的内容脚本执行跨源 XMLHttpRequest?

google-chrome - 在 Chrome 扩展程序网上应用店列表中更改 "from [name]"/"offered by [name]"

javascript/jquery - 将去抖动添加到按钮

javascript - javascript 中的媒体查询

javascript - 用javascript删除css文件

javascript - 如何在不使用 chrome 网上商店的情况下创建像 facebook 一样的通知警报?

javascript - 无法使用 javascript 更改 select 上的 selectedIndex

google-chrome - 从扩展程序访问网页的 `window`/DOM/HTML