我最近一直在尝试通过 NoScript ABE 仅允许某些网站使用某些脚本。具体来说,我想:
- 允许在任何地方使用来自 Google 的一些脚本
- 仅在 Google 的网站上允许使用来自 Google 的某些脚本(例如 Google Drive/Docs)
- 仅在 Facebook 上允许来自 Facebook 的脚本
我无法让其中任何一个工作。我相当肯定 Facebook 应该可以,因为我几乎直接从Abe 的 NoScripts 文档:
Site .facebook.com .fbcdn.net .akamaihd.net
Accept from .facebook.com .fbcdn.net .akamaihd.net
Deny INCLUSION(SCRIPT, OBJ, SUBDOC)
我所做的唯一更改是添加 .akamaihd.net,尽管没有它也无法工作。以下是我的设置截图,以防我做了一些非常愚蠢的事情,例如将其放在错误的部分:
创建新的 Firefox 配置文件、安装 NoScript 并尝试其中的规则会得到相同的结果,因此我认为问题不是另一个插件或 Firefox 配置错误。我在 Fedora 21 上运行 64 位 Firefox 35.0.1。
答案1
您列出的域规则很好 - 您是否尝试过将该网站列入白名单并查看 ABE 调用是否匹配?
详细解答:
ABE 独立于 NoScript 运行。由于它旨在限制已运行脚本的脚本/网站的不良/危险行为,因此除非您将网站列入白名单,否则它不会运行。
因此,作为测试 ABE 规则的第一步,请将该网站列入白名单。
在网站被列入白名单并制定规则后,您可能(和我一样)担心,如果没有看到某种确认,其他网站的脚本就会运行。幸运的是,ABE 将所有匹配记录到错误控制台,您可以从中确认规则是否匹配以及结果请求是否被阻止/允许。
不幸的是,这种类型的日志记录在 FireFox 中已被弃用 - 为了启用错误控制台,请转到 about:config 并将 devtools.errorconsole.enabled 设置为真的。然后您可以从工具菜单中调出错误控制台,并观察 ABE 的运行情况。参见这篇 MDN 文章在这里。
如果一切按计划进行,你会看到类似这样的内容(ABE 拒绝从 newsweek.com 向 twitter.com 发出脚本调用):