API key leaks — #1 причина breach в 2026. Основные правила: 1) Никогда не commit keys в Git (используйте .env + .gitignore), 2) Rotate regularly (quarterly + on incident), 3) Scoped keys — minimum necessary permissions, 4) Secrets manager для production (Vault, AWS SM, GCP SM). GitHub Push Protection автоматически блокирует pushes с detected secrets.
Ниже: пошаговая инструкция, рабочие примеры, типичные ошибки, FAQ.
.env файл + добавьте в .gitignore.env.example в git без actual valuesdetect-secrets, git-secrets (AWS), trufflehoggit filter-branch или BFG Repo-Cleaner| Сценарий | Конфиг |
|---|---|
| .env файл | # .env (в .gitignore)
STRIPE_API_KEY=sk_live_abc123
AWS_ACCESS_KEY_ID=AKIA...
OPENAI_API_KEY=sk-proj-xxx
# .env.example (в git)
STRIPE_API_KEY=sk_live_xxx
AWS_ACCESS_KEY_ID=xxx |
| Node.js reading .env | require('dotenv').config();
const stripe = require('stripe')(process.env.STRIPE_API_KEY); |
| pre-commit hook (detect-secrets) | pip install detect-secrets
detect-secrets scan > .secrets.baseline
# .pre-commit-config.yaml:
repos:
- repo: https://github.com/Yelp/detect-secrets
rev: v1.4.0
hooks: [{id: detect-secrets}] |
| Emergency: remove key из git history | # Если key уже в git — rotate ИМЕДИАТНО (key compromised)
# Затем clean history:
git filter-branch --force --index-filter \
"git rm --cached --ignore-unmatch .env" \
--prune-empty --tag-name-filter cat -- --all
git push --force origin main |
| AWS Secrets Manager | import boto3, json
client = boto3.client('secretsmanager')
secret = json.loads(client.get_secret_value(SecretId='prod/stripe')['SecretString'])
api_key = secret['api_key'] |
console.log(req) dumps headers с Authorization. Mask секреты в loggerИнструмент проверяет HTTP-заголовки безопасности, конфигурацию SSL/TLS, утечки серверной информации и защиту от распространённых атак (XSS, clickjacking, MIMEsniffing). Оценка от A до F показывает общий уровень защиты.
Проверка Content-Security-Policy, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy и других.
Версия TLS, срок сертификата, цепочка доверия, поддержка HSTS.
Поиск раскрытых серверных версий, debug-режимов, открытых конфигов и директорий.
Детальный отчёт с объяснением каждой проблемы и конкретными шагами для исправления.
аудит HTTP-заголовков
проверка конфигурации
CSP и HSTS настройка
соответствие стандартам
Strict-Transport-Security.Server: Apache/2.4.52 помогает атакующим подобрать эксплойт. Скройте версию.DENY или SAMEORIGIN.nosniff браузер может интерпретировать файлы неправильно (MIME sniffing).Content-Security-Policy-Report-Only, мониторьте нарушения, затем включите.Server, X-Powered-By, X-AspNet-Version из ответов.История security-проверок и мониторинг HTTP-заголовков безопасности.
Зарегистрироваться (FREE)Bloom filter + regex detection commits на push. Ловит AWS, Stripe, Google, OpenAI keys и другие common patterns. Включается в repo settings.
Scan history: trufflehog. Monitor provider alerts (AWS CloudTrail, Stripe webhook). Enable Secret Scanning в GitHub (free для public repos).
.env для local dev + staging. Vault/SM для production — enable audit, rotation, fine-grained access. Для early-stage — AWS SM cheap и safe.
Restrict by referer/origin. Google Maps key bound to *.example.com — attacker domain useless. Не 100% защита но raises bar.