HSTS & CSP - бързи победи за сигурността

Прагматични печалби за минути - базови контроли, които блокират цели класове атаки.

Публикувано:

Защо заглавките имат значение

Заглавките за сигурност са евтини и проверими контроли, които веднага повишават нивото на защита. Те не заменят валидирането и дизайна на автентикация, но затварят фронт-дор уязвимости и свиват щетите при грешки.

Пет бързи победи

  1. HSTS - принуждава HTTPS, предотвратява понижаване на протокола и изтичане на бисквитки.
  2. X-Frame-Options или frame-ancestors (в CSP) - спира clickjacking чрез забрана за вграждане.
  3. X-Content-Type-Options: nosniff - блокира MIME type sniffing.
  4. Referrer-Policy - ограничава изтичането на чувствителни URL параметри.
  5. Content-Security-Policy - минимална, но строга политика за скриптове, фреймове и източници.

Прагматичен старт за CSP

Content-Security-Policy:
  default-src 'self';
  script-src 'self' 'strict-dynamic' 'nonce-<random>';
  object-src 'none';
  base-uri 'self';
  frame-ancestors 'none';
  upgrade-insecure-requests;
            

Ползвай nonces за първични скриптове, избягвай wildcard-и и добавяй репортинг при внедряване.

Верификация и внедряване

  • Стартирай в report-only режим за CSP в staging.
  • Автоматизирай проверки в CI (заглавки + TLS профил).
  • Фиксирай очакванията със smoke тестове в production.

Изводи

  • Хедърите дават висок ROI срещу минимално усилие.
  • Не допускайте отслабени дефолти - подсилете ги поетапно.
  • Подсилете хедър частите с истински корекции в кодовете/файловете.