自定义模式的正则表达式库
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 个自定义模式。