|
|
@@ -0,0 +1,39 @@
|
|
|
+package rules
|
|
|
+
|
|
|
+import (
|
|
|
+ "github.com/zricethezav/gitleaks/v8/cmd/generate/config/utils"
|
|
|
+ "github.com/zricethezav/gitleaks/v8/config"
|
|
|
+)
|
|
|
+
|
|
|
+func Notion() *config.Rule {
|
|
|
+ // Define the identifiers that match the Keywords
|
|
|
+ identifiers := []string{"ntn_"}
|
|
|
+
|
|
|
+ // Define the regex pattern for Notion API token
|
|
|
+ secretRegex := `ntn_[0-9]{11}[A-Za-z0-9]{32}[A-Za-z0-9]{3}`
|
|
|
+
|
|
|
+ regex := utils.GenerateUniqueTokenRegex(secretRegex, false)
|
|
|
+
|
|
|
+ r := config.Rule{
|
|
|
+ Description: "Notion API token",
|
|
|
+ RuleID: "notion-api-token",
|
|
|
+ Regex: regex,
|
|
|
+ Entropy: 4,
|
|
|
+ Keywords: identifiers,
|
|
|
+ }
|
|
|
+
|
|
|
+ // validate
|
|
|
+ tps := []string{
|
|
|
+ "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",
|
|
|
+ "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",
|
|
|
+ "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",
|
|
|
+ }
|
|
|
+
|
|
|
+ fps:= []string{
|
|
|
+ "ntn_12345678901",
|
|
|
+ "ntn_123456789012345678901234567890123456789012345678901234567890",
|
|
|
+ "ntn_12345678901abc",
|
|
|
+ }
|
|
|
+
|
|
|
+ return utils.Validate(r, tps, fps)
|
|
|
+}
|