# Security Policy

## Supported versions

Только текущая версия `main` — site deployed continuously, отдельных release-веток нет.

## Reporting a vulnerability

Email: **admin@hhivp.com** (PGP опционально по запросу).

Просим **не публиковать** баг до подтверждения исправления (≤14 дней).

## Security stack (automated)

Этот репозиторий покрыт многоуровневой автоматической проверкой:

### Layer A — на каждый push в `main` (deploy CI)

- **Trivy** — сканирование Docker image на HIGH/CRITICAL CVE в OS-пакетах и npm-deps (warning-only, `--ignore-unfixed`).
- **npm audit** — проверка зависимостей на известные CVE в `Dockerfile` после `npm ci` (warning-only, `--audit-level=high --omit=dev`).

### Layer B — еженедельно (Sun 04:00 UTC, cron)

- **Nuclei** — DAST (Dynamic Application Security Testing) живого сайта. Шаблоны: exposures, misconfig, headers, CVE. Severity: HIGH+CRITICAL.
- Нотификация в Telegram при находках.

### Layer C — на каждый push в `main` + на MR/PR (`.gitea/workflows/security.yml`)

- **Hadolint** — bad practices в `Dockerfile`.
- **GitLeaks** — поиск секретов в git-истории (`fetch-depth: 0`).
- **Semgrep** — SAST (Static Application Security Testing) с конфигами `p/javascript`, `p/react`, `p/typescript`, `p/security-audit`.

Все три инструмента **warning-only** — не блокируют deploy, но finding'и видны в логах job'а.

### Дополнительно

- **152-ФЗ consent-gated analytics** — Я.Метрика и Google Analytics загружаются только после явного согласия пользователя в баннере cookies.
- **HTTPS-only** — Let's Encrypt cert, HSTS включён.
- **Security headers** — `X-Frame-Options`, `X-Content-Type-Options`, `Referrer-Policy`, `Permissions-Policy`, `Content-Security-Policy`.
- **Rate limiting** — на `/api/contact` (5 req/min per IP) + Cloudflare Turnstile widget.

## Contact

- Email: admin@hhivp.com
- Site: https://hhivp.com/
