Накратко
Content Security Policy позволява на сайта да ограничи източниците на ресурси. Режимът Report-Only помага правилата да бъдат наблюдавани преди налагане.
Полезно е да знаеш
Content Security Policy, съкратено CSP, е механизъм за задаване на правила към браузъра при работа с една страница. Често тези правила се изпращат чрез HTTP заглавка. Те могат да ограничават откъде се зареждат скриптове, изображения и други ресурси. Политиката е съставена от директиви, като всяка има име и стойности. Например правилото за изображения може да се различава от правилото за скриптове, защото двата вида ресурси обслужват различни нужди. [1]
Най-лесно е политиката да се разбира като описан набор от разрешения. Стойността self обозначава собствения произход в съответната директива. Директивата default-src задава основа за редица видове ресурси, докато по-конкретна директива може да определи отделно правило. [1] Това не означава, че най-кратката политика винаги е най-подходяща. Нужно е да се знае какво страницата действително използва и поради каква причина. Иначе едно правило може да бъде строго на вид, но неподходящо за работещия интерфейс.
Нека си представим измислен сайт с местни изображения, външен шрифт и вградена карта. Преди да пишем разрешения, можем да направим прост опис: кой компонент е необходим, кой адрес го предоставя и на кои страници се използва. Ако карта има само в страницата за контакти, това е отделна потребност от показването на собственото лого. Такъв опис помага разговорът за сигурност да бъде конкретен и да не се превърне в безразборно добавяне на домейни.
За изпитване съществува заглавката Content-Security-Policy-Report-Only. Тя позволява наблюдение на нарушенията, без съответната политика да бъде наложена. Така екипът може да открие несъвместими ресурси, преди да включи блокиращия режим. [2] Нужно е и подходящо конфигурирано отчитане, ако се очакват изпратени доклади. Самото име на заглавката не означава, че някой автоматично ще преглежда резултатите или ще вземе решение кои ресурси са оправдани.
CSP е допълнителен защитен слой срещу определени начини за изпълнение на нежелан код в страницата. Тя не отменя необходимостта приложението правилно да обработва и извежда входните данни. [1] В практически преглед можем да отделим две задачи: проверка как приложението изгражда съдържанието и проверка как браузърът прилага политиката. Това разделение прави дефектите по-лесни за описване. Не е нужно един успешно блокиран ресурс да бъде представян като доказателство, че всяка друга част на сайта е защитена.
След изпитването добрата поддръжка има ясен собственик и кратък списък с основания за разрешенията. Когато се добави нов външен компонент, екипът проверява дали той изисква промяна и дали тя отговаря на конкретна функция. Полезно е да се запази и примерен посетителски маршрут за повторна проверка. Така политиката се развива заедно със сайта, а всяко разширение има обяснима причина и проверим резултат за работещите страници.
Източници
За повече подробности и проверка на информацията: