Методология Security Grade — v1.0
Кратко.
Рейтинг Security Grade A–F — это сумма пяти взвешенных категорий: HTTPS enforcement (10 баллов), конфигурация HSTS включая preload list (10 баллов), security HTTP-заголовки (~20 баллов суммарно), флаги cookie (10 баллов) и information disclosure / fingerprinting (5 баллов). Source of truth — src/security.php. Частичный кредит при fail в одной категории — сайт не падает в F из-за одного отсутствующего заголовка.
1. HTTPS Enforcement — 10 баллов
- 5 pts — итоговый URL отдаётся по HTTPS
- 5 pts — HTTP → HTTPS 301-редирект (нет mixed-protocol bounce)
2. Конфигурация HSTS — 10 баллов
- 3 pts — присутствует заголовок Strict-Transport-Security
- 3 pts — max-age ≥ 31536000 (один год)
- 2 pts — установлена директива includeSubDomains
- 2 pts — preload + домен в списке hstspreload.org
3. Security-заголовки — ~20 баллов суммарно
Веса как в Health Score security headers — см. /methodology/health-score. Здесь критичны: CSP (6) и HSTS (уже посчитан в §2) — закрывают самые крупные классы XSS + downgrade-атак.
4. Флаги Cookie — 10 баллов
- 4 pts — все cookies имеют Secure (только HTTPS)
- 3 pts — все cookies имеют HttpOnly (не читаются из JS)
- 3 pts — все cookies имеют SameSite (mitigation CSRF)
Частичный pass (1 из N cookie без флага) даёт 1 балл вместо нуля — это поощряет постепенное hardening вместо наказания legacy-систем за один misconfigured cookie.
5. Information Disclosure — 5 баллов
- 2 pts — нет утечки Server: (или generic значение nginx без версии)
- 2 pts — нет X-Powered-By: (отпечаток PHP / Express и т.д.)
- 1 pt — нет открытых .git / .env / debug путей
Буквенная оценка
| Баллы | Оценка |
|---|---|
| 50–55 | A+ |
| 45–49 | A |
| 38–44 | B |
| 30–37 | C |
| 20–29 | D |
| 0–19 | F |
Источники
- OWASP Secure Headers Project
- Chrome HSTS Preload List
- Mozilla Observatory — anchor methodology for grading
- OWASP XSS Reference
- OWASP HttpOnly Cookie Reference
Версионирование
v1.0 — опубликовано 2026-05-05. Зеркалит src/security.php на HEAD 2026-05-05. Веса категорий — оценочные, основаны на blast radius класса атак (HTTPS + HSTS максимально — их отсутствие открывает MitM + downgrade; information disclosure минимально — это только recon). Будущие изменения весов поднимут версию.