首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绕过iFrame程序脚本

绕过iFrame程序脚本
EN

Stack Overflow用户
提问于 2016-06-05 15:00:58
回答 1查看 1.3K关注 0票数 1

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

我可以绕过这个检测:

代码语言:javascript
复制
if (top !== self) {
   //break out
}

在顶部注入此代码:

代码语言:javascript
复制
window.self = window.top;

但如果我有这样的东西

代码语言:javascript
复制
if (window != top) {
   //break out
}

如何重新定义window

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-06 12:45:55

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

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

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

你似乎在试图找到一种通用的欺骗框架破坏者的方法。对我来说这似乎是一项不可能的任务。在代码执行之前,您可能可以以某种方式拦截<script>元素并从代码中删除iframe检测,但是即使您成功地为某些框架破坏程序执行了iframe检测,也总会有其他扩展不会处理的问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37643343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档