Content Security Policy og CMP-kerfið þitt: að láta CSP og samþykki vinna saman

Tvö öryggislög sem verða að vera samstíga

Content Security Policy (CSP) segir vafranum frá hvaða uppsprettum síða má hlaða skriftum, stílum, myndum, römmum og netbeiðnum. Samþykkisstjórnunarkerfi (CMP) vinnur öfugt verk: það ákveður hverjar þessara skrifta mega keyra út frá vali notandans. Þegar þetta tvennt er stillt hvort í sínu lagi rekast þau á. CMP-kerfið hleðst ekki vegna þess að CSP lokar á það, eða CSP er losað svo mikið til að rúma CMP og auglýsingamerki að það verndar ekkert lengur.

Þessi leiðarvísir útskýrir hvaða CSP-tilskipanir CMP þarf venjulega, hvernig nonce-gildi hafa samskipti við innsetningu skrifta og hvernig á að rúlla út breytingum án þess að brjóta borðann.

Hvað CMP þarf yfirleitt frá CSP

Nákvæmar kröfur ráðast af söluaðilanum, svo byrjaðu alltaf á skjölum þíns eigin CMP. Almennt skaltu athuga þessar tilskipanir:

Á TCF-vefsvæðum skaltu muna að CMP býr einnig til staðsetningarramma sem heitir __tcfapiLocator á síðunni. Sá rammi er búinn til án ytri uppsprettu, svo hann þarf venjulega ekki færslu í frame-src, en vert er að staðfesta það í prófunum.

Vandinn með innbyggða stubbinn

Flest CMP biðja þig um að setja litla innbyggða skriftu — stubbinn — í haus síðunnar, svo aðrar skriftur geti sett köll í biðröð áður en aðal-CMP hleðst. Ströng CSP lokar á innbyggðar skriftur nema þú leyfir þær sérstaklega. Þú hefur þrjá kosti:

  1. Nonce. Búðu til slembigildi fyrir hvert svar, bættu því við CSP-haus sem 'nonce-...' og við <script> merki stubbsins. Þetta er sveigjanlegasti kosturinn fyrir kvikar síður.
  2. Kjötkássa (hash). Bættu SHA-256 kjötkássu af nákvæmu innihaldi stubbsins við script-src. Þetta virkar vel fyrir kyrrstæð vefsvæði, en sérhver breyting á stubbnum, jafnvel bil, brýtur það.
  3. Hýsa stubbinn sjálfur sem ytri skrá á þínu eigin léni, sem 'self' nær yfir. Þetta krefst varúðar til að hann hlaðist nógu snemma.

Forðastu 'unsafe-inline' sem flýtileið. Það leyfir sérhverja innbyggða skriftu, sem fjarlægir stóran hluta verndarinnar sem CSP veitir.

Nonce og skriftur sem CMP setur inn

CMP sem lokar á skriftur þar til samþykki liggur fyrir virkar oft með því að halda þeim aftur og setja þær inn síðar. Undir CSP sem byggir á nonce þarf að leyfa þessar innsettu skriftur líka. Tvær algengar aðferðir:

Tag manager-kerfi vekja sömu spurningu. Ef þú hleður auglýsinga- og greiningarmerkjum í gegnum tag manager skaltu fylgja skjölum hans um nonce og tryggja að CMP og tag manager noti samræmda aðferð.

Auglýsingamerki gera CSP erfiðari

Forritatengdar auglýsingar (programmatic) hlaða skriftum og römmum frá mörgum lénum og listinn breytist eftir því sem eftirspurnaraðilar breytast. Útgefendur velja yfirleitt annan af tveimur kostum:

Hvor leiðin sem er ætti CMP að vera á skýrum leyfislista, ekki aðeins undir algildisstaf (wildcard), svo breyting á CSP slökkvi aldrei hljóðlega á borðanum.

Rúllaðu út með Report-Only ham

Notaðu fyrst haushinn Content-Security-Policy-Report-Only. Vafrinn tilkynnir brot án þess að loka á neitt, svo þú sérð hvað ný stefna myndi brjóta.

  1. Settu stefnuna í loftið í report-only ham með tilkynningarendapunkti.
  2. Hlaðaðu síður í hreinum vafraprófílum og farðu í gegnum allt samþykkisferlið: fyrsta heimsókn, samþykkja allt, hafna öllu, sérsniðið val, afturköllun.
  3. Farðu yfir brotatilkynningarnar og vafraborðið (console) með tilliti til lokaðra CMP-auðlinda.
  4. Lagaðu stefnuna og skiptu síðan yfir í framfylgd.
  5. Haltu tilkynningum virkum eftir að framfylgd hefst til að ná afturförum.

Einkenni CSP-árekstrar

Helstu atriði

← Blogg Lesa allt →