Content Security Policy in vaš CMP: kako naj CSP in privolitev delujeta skupaj

Dve varnostni plasti, ki se morata ujemati

Content Security Policy (CSP) brskalniku pove, iz katerih virov sme stran nalagati skripte, sloge, slike, okvirje in omrežne zahteve. Platforma za upravljanje privolitve opravlja nasprotno delo: na podlagi izbire uporabnika odloča, katere od teh skript se smejo izvajati. Kadar sta konfigurirani ločeno, trčita. CMP se ne naloži, ker ga CSP blokira, ali pa se CSP tako zrahlja zaradi CMP-ja in oglasnih oznak, da ne ščiti več ničesar.

Ta vodnik pojasnjuje, katere direktive CSP CMP običajno potrebuje, kako nonce vplivajo na vstavljanje skript in kako uvesti spremembe, ne da bi pokvarili pasico.

Kaj CMP običajno potrebuje od CSP

Natančne zahteve so odvisne od ponudnika, zato vedno izhajajte iz dokumentacije svojega CMP-ja. Na splošno preverite te direktive:

Na straneh TCF ne pozabite, da CMP na strani ustvari tudi okvir lokator z imenom __tcfapiLocator. Ta okvir se ustvari brez oddaljenega vira, zato običajno ne potrebuje vnosa v frame-src, a to je vredno potrditi pri preizkušanju.

Težava z inline stubom

Večina CMP-jev zahteva, da v glavo strani postavite majhno inline skripto — stub — da lahko druge skripte postavijo klice v vrsto, preden se naloži glavni CMP. Stroga CSP blokira inline skripte, razen če jih izrecno dovolite. Imate tri možnosti:

  1. Nonce. Ustvarite naključno vrednost za vsak odgovor, jo dodajte v glavo CSP kot 'nonce-...' in v oznako <script> stuba. To je najbolj prilagodljiva možnost za dinamične strani.
  2. Hash. Dodajte zgoščeno vrednost SHA-256 natančne vsebine stuba v script-src. To dobro deluje za statična spletna mesta, vendar jo vsaka sprememba stuba, tudi presledka, pokvari.
  3. Samostojno gostovanje stuba kot zunanje datoteke na vaši domeni, pokrite z 'self'. To zahteva pazljivost, da se nalaga dovolj zgodaj.

Izogibajte se 'unsafe-inline' kot bližnjici. Dovoljuje vsako inline skripto, s čimer odstrani velik del zaščite, ki jo nudi CSP.

Nonce in skripte, ki jih CMP vstavlja

CMP, ki blokira skripte do privolitve, pogosto deluje tako, da jih zadrži in pozneje vstavi. Pri CSP na osnovi noncea morajo biti dovoljene tudi te vstavljene skripte. Obstajata dva pogosta pristopa:

Upravitelji oznak odpirajo isto vprašanje. Če oglasne in analitične oznake nalagate prek upravitelja oznak, sledite njegovi dokumentaciji o noncih in poskrbite, da CMP in upravitelj oznak uporabljata dosleden pristop.

Oglasne oznake otežijo CSP

Programatično oglaševanje nalaga skripte in okvirje iz številnih domen, seznam pa se spreminja z menjavo partnerjev na strani povpraševanja. Izdajatelji se običajno odločijo za eno od dveh možnosti:

V vsakem primeru naj bo CMP na izrecnem seznamu dovoljenih, ne le pokrit z nadomestnim znakom, da sprememba CSP nikoli tiho ne onemogoči pasice.

Uvajajte z načinom report-only

Najprej uporabite glavo Content-Security-Policy-Report-Only. Brskalnik prijavlja kršitve, ne da bi karkoli blokiral, zato lahko vidite, kaj bi nova politika pokvarila.

  1. Politiko postavite v načinu report-only s končno točko za poročanje.
  2. Naložite strani v čistih profilih brskalnika in prehodite celoten potek privolitve: prvi obisk, sprejmi vse, zavrni vse, izbira po meri, preklic.
  3. Preglejte poročila o kršitvah in konzolo brskalnika zaradi blokiranih virov CMP.
  4. Prilagodite politiko in nato preklopite na uveljavljanje.
  5. Poročanje pustite vklopljeno tudi po uveljavitvi, da ujamete regresije.

Simptomi konflikta s CSP

Ključne ugotovitve

← Blog Preberi vse →