1

我正在尝试在 OS X 中为 Safari 创建一个简单的扩展,将域列入白名单以设置 cookie。文档表明使用“block-cookies”操作类型可以做到这一点。但是,当我尝试使用它时,它什么也没做。我在这里进行测试,无论我使用什么样的规则或者我的 url 触发器有多广泛或具体,该站点都能够设置 cookie。

扩展程序已加载并运行。如果我将操作更改为其他内容,它会起作用。

当我这样做时,“topbar” div 被隐藏:

[{"trigger": {"url-filter": ".*whatarecookies.com.*"},"action": {"type": "css-display-none","selector": "#topbar"}}]

当我这样做时,整个页面无法加载:

[{"trigger": {"url-filter": ".*whatarecookies.com.*"},"action": {"type": "block"}}]

当我这样做时,没有任何东西被阻止:

[{"trigger": {"url-filter": ".*whatarecookies.com.*"},"action": {"type": "block-cookies"}}]

Safari 至少必须接受我的块 cookie 规则,因为如果我将其更改为无效的内容,它会给我一个错误,“JSON 编译失败”。像这样:

[{"trigger": {"url-filter": ".*whatarecookies.com.*"},"action": {"type": "blockcookies"}}]

我没有正确使用“block-cookies”操作吗?或者它被窃听了?

4

1 回答 1

0

我重新审视了这一点,并找出了问题所在:Safari 的“block-cookies”操作确实阻止了 cookie,但仅限于通过 HTTP 标头设置的那些。我正在测试的网站通过 javascript 设置其 cookie,内容阻止对此无能为力。

内容阻止也有一个“脚本”过滤器,但与“阻止cookies”操作一样,它非常有限。由于测试站点通过内联脚本设置其 cookie,因此启用“脚本”过滤器仍然不会阻止它。

于 2016-05-15T12:22:03.687 回答