Generator CSP (Content Security Policy)
Ustvari glavo Content-Security-Policy, oznako meta in različico Report-Only s predlogami, nonce in zgoščenimi vrednostmi SHA-256 ter preveri obstoječo politiko.
Začni s predlogo
Gostitelji Googla so primeri iz Googlovih smernic CSP za oznako Google. Google jih občasno spremeni: preveri trenutno dokumentacijo in odstrani, česar ne uporabljaš.
V oznaki <meta> brskalniki ne upoštevajo frame-ancestors, report-uri, report-to in sandbox, Report-Only pa ni podprt. Oznako postavi na začetek <head>: velja samo za vsebino za njo.
Pregled te politike
Ti pregledi niso našli šibkosti.
Oceni obstoječo politiko
Kako ustvariš politiko
- Pod Začni s predlogo izberi izhodišče: Stroga (nonce + strict-dynamic), Zaklenjeno statično spletno mesto, Običajno spletno mesto ali Običajno + Google Analytics / Ads. Urejevalnik se odpre s predlogo za običajno spletno mesto.
- Prilagodi Direktive. V vsako polje vpiši vire, ločene s presledki; prazno polje direktivo izpusti.
- S Hitro dodajanje dodaš ključno besedo izbrani Direktiva:
'self','none','unsafe-inline','strict-dynamic',https:,data:… Dodaj nonce vstavi naključni 128-bitni nonce. - Če želiš dovoliti določeno vrstično skripto brez
'unsafe-inline', jo prilepi (ali HTML okoli nje) v Izračunaj zgoščeno vrednost vrstične skripte ali sloga in klikni Izračunaj SHA-256 in dodaj. - Označi upgrade-insecure-requests, če nekateri stari URL-ji še uporabljajo
http://, po želji pa vpiši še URL končne točke za poročila (neobvezno). - Kopiraj Glava HTTP, Glava Report-Only (preizkus brez blokiranja) ali Oznaka HTML . Pregled te politike se posodablja sproti, medtem ko tipkaš.
Če želiš preveriti politiko, ki jo že imaš, jo prilepi pod Oceni obstoječo politiko in klikni Oceni politiko; Naloži v urejevalnik jo prekopira v polja.
Orodje deluje v tvojem brskalniku. Nič, kar vneseš, se ne pošlje na strežnik.
Kaj počne Content Security Policy
CSP brskalniku pove, iz katerih izvorov (origin) sme stran nalagati skripte, sloge, slike, pisave, okvirje in povezave. Njegova glavna naloga je omejiti skriptno napadanje med spletnimi mesti (XSS): tudi če napadalec v tvojo stran vbrizga oznake, dobra politika prepreči izvedbo vbrizgane skripte. Nadzoruje tudi, kdo sme tvojo stran vdelati v okvir (frame-ancestors), kam se smejo pošiljati obrazci (form-action) in na kaj sme kazati <base> (base-uri).
Direktive za pridobivanje virov, kot sta img-src ali font-src, se ob odsotnosti zatečejo k default-src. base-uri, form-action in frame-ancestors te nadomestne vrednosti nimajo, zato jih pregled izrecno zahteva.
Nonce, zgoščene vrednosti in strict-dynamic
Dovoljevanje gostiteljev (script-src https://cdn.example.com) je videti varno, a ga je pogosto mogoče zaobiti: velike domene gostijo končne točke JSONP in stare knjižnice, ki jih lahko napadalec ponovno uporabi. Pristop, ki ga priporočajo varnostne ekipe brskalnikov, je stroga CSP: vsaka zakonita oznaka <script> nosi nonce, ki ga strežnik ustvari za vsak odgovor, ali pa je dovoljena prek zgoščene vrednosti, 'strict-dynamic' pa tem zaupanja vrednim skriptam omogoči nalaganje skript, ki jih potrebujejo. Pri takšni zasnovi sta https: in 'unsafe-inline' le nadomestni rešitvi za zelo stare brskalnike; sodobni ju prezrejo.
Nonce deluje le, če se spremeni ob vsakem odgovoru in je nepredvidljiv. Tisti, ki ga vstavi Dodaj nonce, je zgolj primer: tvoj strežnik ali ogrodje mora ustvariti svojega. Zgoščena vrednost zajema natančne bajte vrstične kode, zato je ob vsakem preoblikovanju skripte potrebna nova.
Glava, Report-Only in oznaka meta
Politiko pošiljaj kot glavo odgovora HTTP, kadar je le mogoče. Najprej jo uvedi kot Content-Security-Policy-Report-Only: brskalniki prijavijo kršitve (v konzolo in na tvojo končno točko, če si jo nastavil), ne da bi karkoli blokirali, tako da lahko strani popraviš, preden politiko uveljaviš. Nastavitve poročanja dodajo report-uri za starejše brskalnike in report-to z glavo Reporting-Endpoints.
Različica <meta http-equiv> je priročna na statičnem gostovanju, vendar brskalniki v njej ne upoštevajo frame-ancestors, report-uri, report-to in sandbox, oznake meta za Report-Only pa ni. Orodje te direktive iz oznake odstrani in to tudi sporoči.
Pregled politike
Pregled označi pogoste težave in jim dodeli resnost od Visoka do Informacija: manjkajoči script-src ali object-src, 'unsafe-inline' in 'unsafe-eval', nadomestni znaki, celotne sheme, kot je https:, navadni viri http://, dvojniki, napačno napisane direktive in ključne besede brez enojnih narekovajev. Pregled je pomoč pri odločanju, ne pa zagotovilo: preveri jo na dejanskih straneh in jo preizkusi z Report-Only.
Pogosta vprašanja
Je 'unsafe-inline' v style-src težava?
Manj nevarna je kot v script-src in je zelo pogosta, ker številne knjižnice nastavljajo vrstične sloge. Vbrizgan CSS lahko še vedno popači stran ali razkrije podatke, zato ga pregled navede z nizko resnostjo.
So gostitelji Google Analytics popolni?
So primeri iz Googlovih smernic CSP za oznako Google. Google jih sčasoma prilagaja, potrebne pa so lahko tudi regionalne domene; preveri Googlovo trenutno dokumentacijo in odstrani, česar ne uporabljaš. Vrstični delček gtag.js potrebuje nonce ali zgoščeno vrednost.
Zakaj moja politika blokira moje lastne vrstične skripte?
Ko je script-src nastavljen brez 'unsafe-inline', je blokirana vsaka vrstična oznaka <script> in vsak atribut onclick=. Kodo premakni v datoteko ali dodaj nonce oziroma zgoščeno vrednost.
Ali CSP nadomesti ubežanje uporabniškega vnosa?
Ne. CSP je druga obrambna črta. Še naprej ubegaj izhodne podatke in preverjaj vnos; politika omeji škodo, kadar kaj uide.
Ali lahko imam več politik?
Da: če stran prejme več glav CSP, mora vir izpolnjevati vse. V ocenjevalnik prilepi vsakič eno politiko.
Sorodna orodja
- Generator preusmeritev .htaccess Ustvari preusmeritvi 301 in 302 za .htaccess ali Nginx, vsili HTTPS in www, premakni domeno in uredi poševnice na koncu, s preverjanjem zank in verig.
- Generator oznak meta Brezplačen generator oznak meta za naslov, opis meta, kanonični URL, robots in viewport s preverjanjem dolžine in pravilno ubeženim HTML.
- Generator zgoščenih vrednosti (hash) Ustvari zgoščene vrednosti MD5, SHA-1, SHA-256 in SHA-512 za besedilo ali datoteke poljubne velikosti in preveri kontrolne vsote. Deluje v brskalniku.
- Generator robots.txt Ustvari veljavno datoteko robots.txt s skupinami user-agentov, pravili Allow in Disallow, zemljevidi strani in crawl-delay, s preverjanjem pogostih napak.