Pređi na glavni sadržaj

CSP nonce

Cilj: pokrenite OptSens na sajtu sa strogim Content Security Policy podešavanjem, a da stilovi banera ili odblokirane skripte ne budu odbijeni.

OptSens ubacuje <style> element za baner i ponovo kreira blokirane skripte kada se da saglasnost. Pod strogim CSP-om, pregledač ih blokira osim ako ne nose dozvoljeni nonce. OptSens čita nonce iz sopstvenog script taga i primenjuje ga na stilove i skripte koje ubacuje.

Prosledite nonce na snippet-u

Postavite isti nonce po zahtevu koji koristi vaš CSP na OptSens script tag. OptSens ga preuzima i primenjuje na ubačene stilove i na skripte koje odblokira nakon saglasnosti.

<script
src="https://cdn.optsens.com/optsens.min.js/YOUR_DOMAIN_ID"
nonce="RANDOM_PER_REQUEST_NONCE"></script>

Ako vaš framework uklanja standardni atribut nonce iz renderovanog HTML-a, umesto njega koristite data-nonce. OptSens čita bilo koji od njih.

<script
src="https://cdn.optsens.com/optsens.min.js/YOUR_DOMAIN_ID"
data-nonce="RANDOM_PER_REQUEST_NONCE"></script>

Generišite nov nasumičan nonce pri svakom zahtevu i koristite potpuno istu vrednost u svom Content-Security-Policy zaglavlju.

CSP direktive koje su vam potrebne

Minimalna politika koja radi sa OptSens-om:

Content-Security-Policy:
script-src 'self' 'nonce-RANDOM_PER_REQUEST_NONCE' https://cdn.optsens.com;
style-src 'self' 'nonce-RANDOM_PER_REQUEST_NONCE';
connect-src 'self' https://cdn.optsens.com;
img-src 'self' data: https:;

Napomene:

  • script-src dozvoljava CDN origin tako da se optsens.min.js učita, i nonce kako bi OptSens mogao da ponovo kreira skripte koje odblokira.
  • style-src dozvoljava nonce kako bi se stilovi banera renderovali. Baner se renderuje unutar shadow root-a, a njegov <style> element nosi nonce.
  • connect-src dozvoljava session i consent beacon pozivima da dođu do API-ja.
  • img-src pokriva OptSens logo i eventualni prilagođeni logo banera, koji se serviraju sa CDN-a.

Napomena o skriptama koje odblokirate

OptSens prosleđuje nonce skriptama koje ponovo kreira nakon saglasnosti. Vaši third-party tagovi i dalje moraju biti dozvoljeni vašom politikom sami za sebe. Dodajte origin svakog taga u script-src (na primer https://www.googletagmanager.com), isto kao što biste i bez CMP-a. Nonce pokriva OptSens, a ne odluke politike za third-party origine.

Provera

  1. Postavite CSP zaglavlje i odgovarajući nonce, zatim učitajte sajt u privatnom prozoru.
  2. Baner se prikazuje sa punim stilom, a konzola ne prijavljuje nijedno CSP kršenje za baner.
  3. Prihvatite kategoriju. Skripte koje OptSens odblokira se pokreću, a konzola ne prijavljuje nijedno nonce kršenje za njih.

Povezane stranice