slack.go 940 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package rules
  2. import (
  3. "regexp"
  4. "github.com/zricethezav/gitleaks/v8/config"
  5. )
  6. func SlackAccessToken() *config.Rule {
  7. // define rule
  8. r := config.Rule{
  9. Description: "Slack token",
  10. RuleID: "slack-access-token",
  11. Regex: regexp.MustCompile(
  12. "xox[baprs]-([0-9a-zA-Z]{10,48})"),
  13. Keywords: []string{
  14. "xoxb",
  15. "xoxa",
  16. "xoxp",
  17. "xoxr",
  18. "xoxs",
  19. },
  20. }
  21. // validate
  22. tps := []string{
  23. "\"slackToken\": \"xoxb-" + sampleHex32Token + "\"",
  24. }
  25. return validate(r, tps)
  26. }
  27. func SlackWebHook() *config.Rule {
  28. // define rule
  29. r := config.Rule{
  30. Description: "Slack Webhook",
  31. RuleID: "slack-web-hook",
  32. Regex: regexp.MustCompile(
  33. `https:\/\/hooks.slack.com\/services\/[A-Za-z0-9+\/]{44,46}`),
  34. Keywords: []string{
  35. "hooks.slack.com",
  36. },
  37. }
  38. // validate
  39. tps := []string{
  40. "https://hooks.slack.com/services/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", // gitleaks:allow
  41. }
  42. return validate(r, tps)
  43. }