# GitLeaks config для сателлитных сайтов hhivp. # Extends default rules and adds allowlist for known false-positives. # https://github.com/gitleaks/gitleaks#configuration [extend] useDefault = true [allowlist] description = "Allowlist for IndexNow public keys + legacy WP plugin code" # Пути, которые целиком игнорируем paths = [ # IndexNow validation file (32-hex .txt в корне или в public/). # Это публичный ключ, по дизайну отдаётся всем — НЕ секрет. '''public/[a-f0-9]{32}\.txt''', '''^[a-f0-9]{32}\.txt$''', # IndexNow ping-скрипты содержат `const KEY = '<32hex>'` — # тот же публичный ключ, не секрет (для авторизации перед Яндекс/Bing API). '''scripts/indexnow\.(js|mjs|sh|ts)$''', '''scripts/indexnow-ping\.sh$''', # Legacy WordPress plugin code (akismet, jetpack, wpforms-lite, wp-cache). # Все "ключи" внутри — placeholder/template/internal параметры, # не настоящие секреты. Импортировано из старого WP-сайта как static. '''wp-content/.*''', # Минифицированные ассеты — часто содержат hash'и/токены, не секреты. '''.*\.min\.(js|css)$''', '''dist/.*''', '''build/.*''', # Защита на случай возврата CMS exports / production logs в репо # (см. инцидент 2026-05-24 с Ghost ghost_private_key + members_private_key). # Сами файлы УЖЕ удалены из history через git filter-repo, allowlist — # дополнительная защита для будущих commit'ов. '''content/logs/.*''', '''content/data/.*''', '''.*\.production\.log(\.[0-9]+)?$''', '''.*\.ghost\..*\.json$''', ] # Конкретные паттерны, которые false-positive regexes = [ # Наш scripts/indexnow.js: const KEY = '<32-hex>' — IndexNow public key. '''const\s+KEY\s*=\s*['"][a-f0-9]{32}['"]''', # Аналог для других форм объявления того же ключа. '''KEY\s*[:=]\s*['"][a-f0-9]{32}['"]''', ]