<iframe>里面的欺骗导航器

时间:2017-08-13 02:39:56

标签: javascript firefox-addon privacy

我正在编写一个隐私浏览器扩展程序。我需要做的一件事就是欺骗window.navigator对象及其成功为主窗口对象设置的属性。我还需要为页面上的每个iframe.contentWindow欺骗window.navigator对象。我想我可以使用self.frames然后遍历那些欺骗,但是我的代码运行后创建的帧会怎样但是当我的代码运行时不存在var myFrame = document.createElement(“iframe”); ????

&#xA;&#xA;

我希望所有导航器对象实例都是主窗口中的实例,以及每个iframe中创建的实例都是欺骗性的。为了让您了解我想要做什么,这不会影响每个iframe中的导航器。

&#xA;&#xA;
  Object.defineProperty(HTMLIFrameElement.prototype) .contentWindow,“navigator”,{&#xA; configurable:true,&#xA; enumerable:true,&#xA; value:“some false navigator object”&#xA;});&#xA;  
&#xA;&#xA;

也许是因为它实际上是window.HTMLIFrameElement.prototype而那我错了?

&#xA;&#xA;

任何想法?&#xA;如果您不明白这个问题,请询问更多细节。

&#xA;

1 个答案:

答案 0 :(得分:2)

iframe中的全局对象(window)不是从HTMLIFrameElement的原型派生的。原型的contentWindow属性只是一个访问器,它为您提供了另一个全局的跨领域代理。

要替换实际navigator属性,您需要在每个iframe中使用{all_frames: true, run_at: document-start}运行脚本。