Анализатор на заглавки за сигурност
Поставете необработени заглавки на HTTP отговор от curl -I или раздела Мрежа на DevTools и получете степенуван одит на сигурността — истински анализатор на граматика на Content-Security-Policy плюс HSTS, X-Frame-Options, флагове за бисквитки и други, изцяло офлайн.
Резултат
Хедърите на отговорите носят по-голямата част от реалната политика за сигурност, прилагана от браузъра на уебсайта, но при четенето им на око е лесно да се обърка: Content-Security-Policy може да изглежда стриктно на пръв поглед, докато тихо позволява „несигурни вградени“ скриптове, а хедърът Strict-Transport-Security може да присъства с максимална възраст, толкова кратка, че почти не прави нищо. Този инструмент взема необработения заглавен блок, който поставяте – копиран направо от curl -I, Postman или заявка за раздела DevTools Network на браузъра – и го пуска през същата категория проверки, използвани от добре познатите онлайн програми за оценка на заглавки, изцяло във вашия браузър. Нищо не се извлича: каквото и да поставите, всичко се анализира, което означава, че работи идентично за публичен производствен сайт, вътрешен промеждувен сървър или крайна точка, разположена зад защитна стена, която външен скенер не може да достигне.
Централната част е истински анализатор на граматика на 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, като анализира собствената си директива за максимална възраст и маркира стойности под приблизително шест месеца като твърде кратки, за да бъдат смислено ефективни, плюс дали са зададени includeSubDomains и preload. X-Content-Type-Options трябва да бъде точният низ „nosniff“ или се маркира като игнориран от браузърите. X-Frame-Options се проверява за DENY или SAMEORIGIN, но инструментът също така е наясно, че директивата за предшественици на CSP кадри е модерният заместител на защитата от щракане — ако тя е налице, X-Frame-Options се третира като покрита дори когато самата наследена заглавка отсъства. Referrer-Policy се проверява спрямо истинския списък с валидни ключови думи и се маркира, ако е зададена на стойността „unsafe-url“ за изтичане на URL, Permissions-Policy се проверява за присъствие и всеки намерен ред Set-Cookie се анализира за собствените си атрибути Secure, HttpOnly и SameSite, включително конкретното правило, че SameSite=None бисквитките без Secure се отхвърлят мълчаливо от браузърите.
Всяка проверка произвежда едно от трите честни състояния — добро, изисква внимание или липсва — с ясно обяснение на английски защо това заглавие има значение за реални атаки (XSS, кликовки, кражба на бисквитки, понижаване на протокол), а общата оценка A-F е прозрачна сума от точки за заглавие, а не резултат от черна кутия. Пълният отчет може да бъде копиран като обикновен текст с едно щракване за поставяне в заявка за изтегляне, билет или преглед на сигурността и тъй като синтактичният анализ се извършва изцяло от поставения текст, този инструмент е еднакво полезен за одит на заглавките на вашия собствен сайт, преглед на отговора на доставчика преди интегриране с тях или двойна проверка на промяна в конфигурацията, преди да бъде изпратена.