跳至主要内容

自定义模式参考

使用特定的正则表达式语法来定义精确的自定义模式,以进行机密扫描。

自定义模式的正则表达式库

机密扫描的自定义模式使用 Hyperscan 库 定义,仅支持 Hyperscan 正则表达式构造,它们是 PCRE 语法的一个子集。不支持 Hyperscan 选项修饰符。如需了解有关 Hyperscan 模式构造的更多信息,请参阅 Hyperscan 文档中的 模式支持

手动定义自定义模式的语法

The 更多选项 部分在 UI 中帮助您手动编写正则表达式。

  • 密钥格式: 描述密钥本身格式的表达式。
  • 密钥前: 描述位于密钥之前的字符的表达式。默认情况下,该表达式设置为 \A|[^0-9A-Za-z],这意味着密钥必须位于行首或前面有非字母数字字符。
  • 密钥后: 描述位于密钥之后的字符的表达式。默认情况下,该表达式设置为 \z|[^0-9A-Za-z],这意味着密钥必须后跟换行符或非字母数字字符。
  • 附加匹配要求: 一个或多个可选表达式,密钥本身必须匹配或必须不匹配。

对于简单令牌,通常只需指定密钥格式。其他字段提供灵活性,使您能够在不编写复杂正则表达式的情况下指定更复杂的密钥。

自定义模式示例

某公司拥有一个具有五个特征的内部令牌。他们使用不同的字段来指定如何识别令牌,如下所示

特征字段和正则表达式
长度在 5 到 10 个字符之间密钥格式:[$#%@AA-Za-z0-9]{5,10}
不能以 . 结尾密钥后:[^\.]
包含数字和大写字母附加要求:密钥必须匹配 [A-Z][0-9]
不包含连续多个小写字母附加要求:密钥不得匹配 [a-z]{2,}
包含以下任意一个字符 $%@!附加要求:密钥必须匹配 [$%@!]

这些令牌将匹配上述自定义模式

a9@AAfT!         # Secret string match: a9@AAfT
ee95GG@ZA942@aa  # Secret string match: @ZA942@a
a9@AA!ee9        # Secret string match: a9@AA

这些字符串将不匹配上述自定义模式

a9@AA.!
a@AAAAA
aa9@AA!ee9
aAAAe9

限制

机密扫描每个组织或企业账户最多支持 500 条自定义模式,每个仓库最多支持 100 条自定义模式。

© . This site is unofficial and not affiliated with GitHub, Inc.