Google Chrome 的阻止/允许模式语法是什么?

Google Chrome 的阻止/允许模式语法是什么?

我正在寻找描述 Google Chrome 在内容设置的阻止/允许列表中使用的 glob/wildcard/pattern 语法的文档。

如果你使用 Chrome,可以通过以下 URL 访问这些设置页面:

chrome://settings/content/javascript

chrome://settings/content/cookies

还有其他几个页面使用相同的 URL 匹配语法。单击“添加”时,表单将显示示例文本。[*.]example.com使用通配符模式时,方括号似乎是必需的,因为省略它们会导致消息,Not a valid web address

官方文档或源代码会很好,但是普通的 BNF 是理想的。

我找到了两个相关页面,它们描述了 Chrome 中的 URL 模式匹配,但它们都不适用于这种情况。除非我误解了它们的相关性(它们都没有记录所需的方括号),否则请不要引用它们:

  1. https://www.chromium.org/administrators/url-blacklist-filter-format

  2. https://developer.chrome.com/apps/match_patterns

答案1

经过一些测试,它是这样的:

不会自动匹配子域,除非您添加前缀 [*.],这似乎是唯一允许的通配符构造。此外,您还可以选择添加确切的 URI 方案前缀和确切的端口后缀。

For: https://www.whatismybrowser.com
    ❌ whatismybrowser.com
    ✔ www.whatismybrowser.com
    ✔ [*.]whatismybrowser.com
    ✔ https://www.whatismybrowser.com
    ✔ https://[*.]whatismybrowser.com
    ✔ https://[*.]whatismybrowser.com:443
    ✔ [*.]whatismybrowser.com:443
    ✔ *://www.whatismybrowser.com -> removes scheme prefix
    ✔ [*.]whatismybrowser.com/ -> removes path suffix
    ❌ http://www.whatismybrowser.com -> as expected
    ❌ www.whatismybrowser.tld
    ❌ www.whatismybrowser.* or [.*] -> invalid input
    ❌ foo.[*.]whatismybrowser.com -> invalid input

答案2

我最初有同样的行为,但[*.]example.com语法正确,而且在我复制并粘贴地址后,它就可以工作了这里

现在我可以使用每个 url,也许这是一个错误。

相关内容