0

Аналізатор заголовків безпеки

Вставте сирі HTTP-заголовки відповіді з curl -I або вкладки Network у DevTools і отримайте оцінений аудит безпеки — справжній граматичний парсер Content-Security-Policy плюс перевірки HSTS, X-Frame-Options, прапорців cookie та інше, повністю офлайн.

Buy Me a Coffee at ko-fi.com
Опрацювання... 0%
Розбір заголовків
Аналіз CSP
Підрахунок оцінки
Готово

Результат

Заголовки відповіді несуть більшу частину реальної, примусової на рівні браузера політики безпеки сайту, проте прочитати їх на око легко неправильно: Content-Security-Policy може на перший погляд виглядати суворим, а насправді тихо дозволяти скрипти 'unsafe-inline', а заголовок Strict-Transport-Security може бути присутнім із таким коротким max-age, що майже нічого не дає. Цей інструмент бере сирий блок заголовків, який ви вставляєте, — скопійований прямо з curl -I, Postman чи запиту у вкладці Network браузерних DevTools — і пропускає його через ту саму категорію перевірок, що й відомі онлайн-оцінювачі заголовків, повністю у вашому браузері. Нічого не завантажується: аналізується лише те, що ви вставили, а отже це працює однаково і для публічного продакшн-сайту, і для внутрішнього staging-сервера, і для ендпоінта за фаєрволом, до якого жоден зовнішній сканер ніколи б не дістався.

Осердя інструменту — справжній граматичний парсер Content-Security-Policy, а не чекліст. Значення заголовка розбивається крапками з комою на директиви, і список джерел кожної директиви розбирається й перевіряється окремо: директиви, повʼязані зі скриптами й стилями, позначаються, якщо дозволяють 'unsafe-inline' чи 'unsafe-eval', будь-яка директива позначається за голий вайлдкард-символ '*' як джерело (з підвищеною критичністю, якщо цей вайлдкард стоїть у script-src, object-src, base-uri чи default-src), широкі джерела-схеми на кшталт 'https:' у директиві скриптів позначаються як майже такі ж дозвільні, як вайлдкард, а вся політика в цілому перевіряється на відсутність фолбеку default-src і на застарілі директиви (block-all-mixed-content, plugin-types, referrer, reflected-xss), які сучасні браузери просто ігнорують. CSP, надісланий лише як Content-Security-Policy-Report-Only, розпізнається і позначається як такий, що ще не застосовується примусово, — це відрізняється від повністю відсутньої політики.

Крім CSP, інструмент перевіряє Strict-Transport-Security, розбираючи власну директиву max-age і позначаючи значення менші за приблизно шість місяців як задто короткі, щоб бути по-справжньому ефективними, а також чи встановлено includeSubDomains і preload. X-Content-Type-Options має бути рівно рядком 'nosniff', інакше позначається як такий, що ігнорується браузерами. X-Frame-Options перевіряється на DENY чи SAMEORIGIN, але інструмент також враховує, що директива CSP frame-ancestors є сучасною заміною захисту від клікджекінгу — якщо вона присутня, X-Frame-Options вважається покритим, навіть якщо самого застарілого заголовка немає. Referrer-Policy звіряється зі справжнім списком дійсних ключових слів і позначається, якщо встановлено значення 'unsafe-url', що зливає URL, Permissions-Policy перевіряється на наявність, а кожен знайдений рядок Set-Cookie розбирається на власні атрибути Secure, HttpOnly та SameSite, включно з конкретним правилом, що cookie з SameSite=None без Secure браузери мовчки відхиляють.

Кожна перевірка дає один із трьох чесних станів — добре, потребує уваги або відсутнє — з поясненням простою мовою, чому цей заголовок важливий для реальних атак (XSS, клікджекінг, крадіжка cookie, пониження протоколу), а загальна оцінка A-F — це прозора сума балів по кожному заголовку, а не непрозорий чорний ящик. Повний звіт можна скопіювати як текст в один клік для вставки в pull request, тікет чи огляд безпеки, а оскільки розбір відбувається повністю з вставленого тексту, цей інструмент однаково корисний і для аудиту заголовків власного сайту, і для перевірки відповіді постачальника перед інтеграцією з ним, і для подвійної перевірки зміни конфігурації перед випуском.