Skip to main content

自定义模式参考

使用特定的正则表达式语法为 secret scanning 定义准确的自定义模式。

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

Secret scanning 自定义模式是使用 Hyperscan 库定义的,并且只支持 Hyperscan 正则表达式构造(PCRE 语法的子集)。 不支持 Hyperscan 选项修饰符。 有关 Hyperscan 模式构造的详细信息,请参阅 Hyperscan 文档中的模式支持

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

UI 中的 “More options ”部分可以帮助您手动编写正则表达式。

  •         **机密格式:** 描述机密本身格式的表达式。
    
  •         **机密之前:** 用于描述机密之前字符的表达式。 默认情况下,此值设置为 `\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

限制

Secret scanning支持每个组织或企业帐户最多 500 个自定义模式,每个存储库最多 100 个自定义模式。