如何设置Firefox以阻止window.name

时间:2014-04-06 02:53:16

标签: firefox

我正在尝试修改我的Firefox个人资料,因此它不会在没有使用插件的情况下向网站发布如此多的机密和私人数据,因为我不相信它们。特别感兴趣的是window.name我试图限制它的访问权限。我使用下面的代码修改了我的firefox配置文件中的user.js文件。

user_pref("browser.cache.disk.enable", false);
user_pref("browser.cache.memory.enable", false);
user_pref("browser.display.use_document_fonts", 0);
user_pref("browser.search.defaultenginename", "Ixquick HTTPS");
user_pref("browser.search.selectedEngine", "Ixquick HTTPS");
user_pref("browser.search.suggest.enabled", false);
user_pref("browser.sessionhistory.max_entries", 2);
user_pref("browser.startup.homepage", "http://www.cbc.ca/");
user_pref("browser.tabs.warnOnClose", false);
user_pref("dom.battery.enabled", false);
user_pref("general.appname.override", "Netscape");
user_pref("general.appversion.override", "5.0 (X11)");
user_pref("general.buildID.override", "20140315085348");
user_pref("general.oscpu.override", "Linux i686");
user_pref("general.platform.override", "");
user_pref("general.useragent.override", "Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Firefox/24.0");
user_pref("general.warnOnAboutConfig", false);
user_pref("geo.enabled", false);
user_pref("network.cookie.cookieBehavior", 1);
user_pref("network.dns.disablePrefetch", true);
user_pref("network.dns.disablePrefetchFromHTTPS", true);
user_pref("network.http.pipelining", true);
user_pref("network.http.pipelining.ssl", true);
user_pref("network.http.referer.XOriginPolicy", 1);
user_pref("network.http.sendRefererHeader", 1);
user_pref("network.prefetch-next", false);
user_pref("plugin.default.state", 0);
user_pref("plugin.state.flash", 1);
user_pref("plugin.state.java", 0);
user_pref("privacy.clearOnShutdown.cache", true);
user_pref("privacy.clearOnShutdown.cookies", true);
user_pref("privacy.clearOnShutdown.downloads", true);
user_pref("privacy.clearOnShutdown.formdata", true);
user_pref("privacy.clearOnShutdown.history", true);
user_pref("privacy.clearOnShutdown.sessions", true);
user_pref("privacy.donottrackheader.enabled", true);
user_pref("privacy.sanitize.sanitizeOnShutdown", true);
user_pref("webgl.disabled", true);

user_pref("capability.policy.policynames", "js");

user_pref("capability.policy.javascript.enabled", "noAccess");
user_pref("capability.policy.js.sites", "http://ip-check.info https://www.facebook.com https://facebook.com https://stackoverflow.com");
user_pref("capability.policy.js.javascript.enabled", "sameOrigin");

user_pref("capability.policy.Window.name.set", "allAccess");
user_pref("capability.policy.Window.name.get", "sameOrigin");

一切正常,除了最后两行,所有javascript都被禁用,除了我通过js.sites明确允许的网站。我已经为window.name尝试了许多不同的变体,并且不能以任何方式,形状或形式限制它。我试过default.window.name,htmldocument.window.name加上很多其他的,没有用。我想这样做,所以任何网站都可以设置window.name,但只有设置它的网站才能获得该属性。

我的问题有两个,一个是以我正在尝试的方式限制window.name,两个,如果有可能我做错了什么,谢谢。

3 个答案:

答案 0 :(得分:1)

Mozilla很久以前就从Gecko中移除了功能系统:https://bugzilla.mozilla.org/show_bug.cgi?id=789224

控制javascript执行的人总是使用“功能”的特例。命名空间,所以那些,但真正的细粒度对象功能已经消失。

您可以限制从附加组件访问Window.name,但您可能必须创建它;我想不出任何已经那样做过的。

答案 1 :(得分:1)

您可以使用NoScrip Addon执行此操作。安装后,转到about:config(设置UI无法完成此操作)并查找noscript.jsHack。作为价值,您可以输入例如 window.name = 123456。 noscript.jsHack的内容是javasript代码,每次访问新网站时都会执行。

如果您需要定义例外,请查找noscript.jsHackRegExp并输入正则表达式(不支持子域),例如: G。: ^([^。] )。((site1.com |?!site2.org | site3.net))(。

答案 2 :(得分:0)

firefox插件Random Agent Spoofer可以阻止window.name。 https://addons.mozilla.org/en-US/firefox/addon/random-agent-spoofer/但是你必须使用github版本。该页面上有一个指向github版本的链接。