CSP-generaator
Koosta Content-Security-Policy päis, meta silt ja Report-Only variant eelseadistuste, nonce'ide ja SHA-256 räsidega ning auditeeri olemasolevat poliitikat.
Alusta eelseadistusest
Google'i hostid on näited Google'i sildi CSP-juhisest. Google muudab neid aeg-ajalt: vaata praegust dokumentatsiooni ja eemalda need, mida sa ei kasuta.
<meta> sildis brauserid ignoreerivad direktiive frame-ancestors, report-uri, report-to ja sandbox ning Report-Only ei ole toetatud. Pane silt <head> algusesse: see kehtib ainult sellele sisule, mis tuleb pärast seda.
Selle poliitika ülevaatus
Need kontrollid ei leidnud nõrkusi.
Hinda olemasolevat poliitikat
Kuidas poliitikat koostada
- Vali alguspunkt jaotisest Alusta eelseadistusest: Range (nonce + strict-dynamic), Lukustatud staatiline sait, Tavaline veebisait või Tavaline + Google Analytics / Ads. Redaktor avaneb tavalise veebisaidi eelseadistusega.
- Kohanda Direktiive. Igasse välja sisesta allikad tühikutega eraldatult; tühi väli jätab direktiivi välja.
- Kasuta Kiirlisamist, et lisada valitud Direktiivile märksõna:
'self','none','unsafe-inline','strict-dynamic',https:,data:jne. Lisa nonce lisab juhusliku 128-bitise nonce’i. - Et lubada konkreetne reasisene skript ilma
'unsafe-inline'väärtuseta, kleebi see (või selle ümbrus HTML-is) lahtrisse Arvuta reasisese skripti või laadi räsi ja klõpsa Arvuta SHA-256 ja lisa. - Märgi upgrade-insecure-requests, kui mõni vana aadress kasutab veel
http://, ja soovi korral sisesta Aruande lõpp-punkti URL. - Kopeeri HTTP päis, Report-Only päis või HTML silt. Selle poliitika ülevaatus uueneb sedamööda, kuidas sa muudad.
Olemasoleva poliitika auditeerimiseks kleebi see jaotisse Hinda olemasolevat poliitikat ja klõpsa Hinda poliitikat; Laadi redaktorisse kopeerib selle väljadesse.
Tööriist töötab sinu brauseris: sinu poliitikat ja koodi ei saadeta serverisse.
Mida Content Security Policy teeb
CSP ütleb brauserile, millistest päritoludest võib leht laadida skripte, laade, pilte, fonte, raame ja ühendusi. Selle peamine ülesanne on piirata saitidevahelist skriptimist (XSS): isegi kui ründaja süstib sinu lehele märgendust, takistab hea poliitika süstitud skripti käivitumist. Samuti kontrollib see, kes võib sinu lehte raami panna (frame-ancestors), kuhu vorme saab saata (form-action) ja kuhu võib osutada <base> (base-uri).
Hankimisdirektiivid, näiteks img-src või font-src, kasutavad puudumise korral varuvariandina direktiivi default-src. Direktiivid base-uri, form-action ja frame-ancestors varuvarianti ei kasuta, mistõttu ülevaatus nõuab neid selgesõnaliselt.
Nonce’id, räsid ja strict-dynamic
Hostide lubamine (script-src https://cdn.example.com) tundub turvaline, kuid sellest pääseb sageli mööda: suured domeenid majutavad JSONP-lõpp-punkte ja vanu teeke, mida ründaja saab ära kasutada. Brauseriturbe meeskondade soovitatud lähenemine on range CSP: iga õige <script> kannab nonce’i, mille server loob iga vastuse jaoks, või on lubatud oma räsi järgi, ning 'strict-dynamic' lubab neil usaldatud skriptidel laadida vajalikud skriptid. Sellises seadistuses on https: ja 'unsafe-inline' vaid varuvariandid väga vanadele brauseritele; kaasaegsed brauserid ignoreerivad neid.
Nonce toimib ainult siis, kui see muutub igas vastuses ja on ennustamatu. Nupuga Lisa nonce lisatud väärtus on näide: sinu server või raamistik peab looma oma nonce’i. Räsi katab reasisese koodi täpsed baidid, seega skripti ümbervormindamine nõuab uut räsi.
Päis, Report-Only ja meta silt
Saada poliitika HTTP vastuse päisena, kui vähegi saad. Võta see esmalt kasutusele kujul Content-Security-Policy-Report-Only: brauserid teatavad rikkumistest (konsooli ja, kui oled lõpp-punkti määranud, ka sinu lõpp-punkti), midagi blokeerimata, nii et saad lehed enne jõustamist korda teha. Aruandeseaded lisavad report-uri vanemate brauserite jaoks ja report-to koos Reporting-Endpoints päisega.
Versioon <meta http-equiv> on mugav staatilise majutuse korral, kuid brauserid ignoreerivad selles direktiive frame-ancestors, report-uri, report-to ja sandbox, ning Report-Only meta silti ei ole. Tööriist eemaldab need direktiivid sildist ja teatab sellest.
Korduma kippuvad küsimused
Kas 'unsafe-inline' direktiivis style-src on probleem?
See on vähem ohtlik kui direktiivis script-src ja väga levinud, sest paljud teegid määravad reasiseseid laade. Süstitud CSS võib siiski lehe moonutada või andmeid lekitada, seega loetleb ülevaatus selle madala tõsidusega.
Kas Google Analyticsi hostid on täielikud?
Need on näited Google’i sildi CSP-juhisest. Google kohandab neid aja jooksul ja vaja võib minna piirkondlikke domeene; vaata Google’i praegust dokumentatsiooni ja eemalda need, mida sa ei kasuta. Ka gtag.js-i reasisene lõik vajab nonce’i või räsi.
Miks mu poliitika blokeerib minu enda reasisesed skriptid?
Kui script-src on seatud ilma 'unsafe-inline' väärtuseta, blokeeritakse iga reasisene <script> ja onclick= atribuut. Tõsta kood faili või lisa nonce või räsi.
Kas CSP asendab kasutaja sisendi paojärjestamist?
Ei. CSP on teine kaitseliin. Jätka väljundi paojärjestamist ja sisendi valideerimist; poliitika piirab kahju, kui midagi läbi lipsab.
Kas mul võib olla mitu poliitikat?
Jah: kui leht saab mitu CSP päist, peab ressurss rahuldama neid kõiki. Kleebi hindajasse korraga üks poliitika.
Seotud tööriistad
- .htaccess ümbersuunamise generaator Loo 301 ja 302 ümbersuunamised .htaccess või Nginxi jaoks, sunni HTTPS ja www, teisalda domeen ja paranda lõpukaldkriipsud tsüklite kontrolliga.
- Meta-siltide generaator Tasuta meta-siltide generaator: lehe pealkiri, metakirjeldus, kanooniline URL, robots ja viewport pikkusekontrolli ning õigesti escape'itud HTML-iga.
- Räsigeneraator Loo teksti või mis tahes suurusega failide MD5, SHA-1, SHA-256 ja SHA-512 räsid ning kontrolli kontrollsummasid. Kõik töötab sinu brauseris.
- Robots.txt generaator Loo kehtiv robots.txt fail kasutajaagendi rühmade, Allow- ja Disallow-reeglite, saidikaartide ja crawl-delay'ga ning kontrolli levinud vigu.