Content Security Policy a váš CMP: ako zosúladiť CSP a súhlas

Dve bezpečnostné vrstvy, ktoré sa musia zhodnúť

Content Security Policy (CSP) hovorí prehliadaču, z akých zdrojov smie stránka načítavať skripty, štýly, obrázky, frame a sieťové požiadavky. Consent management platform robí opačnú prácu: rozhoduje, ktoré z týchto skriptov smú bežať podľa voľby používateľa. Keď sa obe konfigurujú samostatne, kolidujú. CMP sa nenačíta, lebo ho CSP blokuje, alebo sa CSP natoľko uvoľní kvôli CMP a reklamným tagom, že už nič nechráni.

Tento sprievodca vysvetľuje, ktoré direktívy CSP CMP typicky potrebuje, ako nonce spolupracujú s vkladaním skriptov a ako zmeny nasadiť bez pokazenia bannera.

Čo CMP zvyčajne od CSP potrebuje

Presné požiadavky závisia od poskytovateľa, preto vždy vychádzajte z dokumentácie vášho CMP. Vo všeobecnosti skontrolujte tieto direktívy:

Na weboch s TCF nezabúdajte, že CMP na stránke vytvára aj locator frame s názvom __tcfapiLocator. Tento frame sa vytvára bez vzdialeného zdroja, takže zvyčajne nepotrebuje záznam vo frame-src, ale oplatí sa to potvrdiť pri testovaní.

Problém inline stubu

Väčšina CMP vás žiada, aby ste do hlavičky stránky vložili malý inline skript — stub — aby ostatné skripty mohli zaraďovať volania do fronty pred načítaním hlavného CMP. Prísna CSP inline skripty blokuje, pokiaľ ich výslovne nepovolíte. Máte tri možnosti:

  1. Nonce. Vygenerujte náhodnú hodnotu pre každú odpoveď, pridajte ju do hlavičky CSP ako 'nonce-...' a do značky <script> stubu. Je to najflexibilnejšia možnosť pre dynamické stránky.
  2. Hash. Pridajte do script-src hash SHA-256 presného obsahu stubu. Pre statické weby to funguje dobre, ale akákoľvek zmena stubu, aj medzera, ho pokazí.
  3. Self-hosting stubu ako externého súboru na vlastnej doméne, pokrytého 'self'. Treba dbať na to, aby sa načítal dostatočne skoro.

Nepoužívajte 'unsafe-inline' ako skratku. Povoľuje každý inline skript, čím sa výrazne znižuje ochrana, ktorú CSP poskytuje.

Nonce a skripty vkladané CMP

CMP, ktorý blokuje skripty do udelenia súhlasu, často funguje tak, že ich zadrží a vloží neskôr. Pri CSP založenej na nonce treba povoliť aj tieto vložené skripty. Existujú dva bežné prístupy:

Rovnakú otázku vyvolávajú tag managery. Ak načítavate reklamné a analytické tagy cez tag manager, riaďte sa jeho dokumentáciou k nonce a uistite sa, že CMP a tag manager používajú konzistentný prístup.

Reklamné tagy sťažujú CSP

Programatická reklama načítava skripty a frame z mnohých domén a zoznam sa mení s partnermi na strane dopytu. Vydavatelia zvyčajne volia jednu z dvoch ciest:

V oboch prípadoch by mal byť CMP na výslovnom zozname povolených, nie pokrytý len zástupným znakom, aby zmena CSP nikdy potichu nevypla banner.

Nasadzujte v režime Report-Only

Najprv použite hlavičku Content-Security-Policy-Report-Only. Prehliadač hlási porušenia bez toho, aby niečo blokoval, takže uvidíte, čo by nová politika pokazila.

  1. Nasaďte politiku v režime report-only s koncovým bodom na hlásenie.
  2. Načítajte stránky v čistých profiloch prehliadača a prejdite celý tok súhlasu: prvá návšteva, prijať všetko, odmietnuť všetko, vlastná voľba, odvolanie.
  3. Skontrolujte hlásenia o porušeniach a konzolu prehliadača, či nie sú zablokované zdroje CMP.
  4. Upravte politiku a potom prepnite na vynucovanie.
  5. Po vynucovaní nechajte hlásenia zapnuté, aby ste zachytili regresie.

Príznaky konfliktu s CSP

Kľúčové poznatky

← Blog Čítať všetko →