Generatur tal-Content Security Policy
Ibni header, tag meta u verżjoni Report-Only ta’ Content-Security-Policy b’presets, nonces u hashes SHA-256, u evalwa policy eżistenti.
Ibda minn preset
L-hosts ta’ Google huma eżempji meħudin mill-gwida CSP ta’ Google għat-tag ta’ Google. Google tbiddilhom minn żmien għal żmien: iċċekkja d-dokumentazzjoni kurrenti u neħħi dak li ma tużax.
F’tag <meta> il-brawżers jinjoraw frame-ancestors, report-uri, report-to u sandbox, u Report-Only mhuwiex appoġġjat. Poġġi t-tag fil-bidu ta’ <head>: japplika biss għal kontenut li jiġi warajh.
Reviżjoni ta’ din il-policy
Dawn il-kontrolli ma sabu ebda dgħjufija.
Evalwa policy eżistenti
Kif tibni policy
- Għażel punt tat-tluq taħt Ibda minn preset: Stretta (nonce + strict-dynamic), Sit statiku mgħolli, Sit tipiku jew Tipiku + Google Analytics / Ads. L-editur jinfetaħ bil-preset tas-sit tipiku.
- Aġġusta d-Direttivi. Kull kamp jieħu sorsi separati b’spazju; kamp vojt iħalli d-direttiva barra.
- Uża Żieda rapida biex iżżid keyword mad-Direttiva magħżula:
'self','none','unsafe-inline','strict-dynamic',https:,data:… Żid nonce idaħħal nonce każwali ta’ 128 bit. - Biex tippermetti script inline speċifiku mingħajr
'unsafe-inline', waħħlu (jew l-HTML madwaru) f’Ikkalkula hash ta’ script jew stil inline u kklikkja Ikkalkula SHA-256 u żid. - Immarka upgrade-insecure-requests jekk xi URLs qodma għadhom jużaw
http://, u jekk trid daħħal URL tal-endpoint tar-rapporti. - Ikkopja l-Header HTTP, il-Header Report-Only jew it-Tag HTML . Ir-Reviżjoni ta’ din il-policy tinbidel hekk kif tikteb.
Biex tivverifika policy li diġà għandek, waħħalha taħt Evalwa policy eżistenti u kklikkja Evalwa l-policy; Ikkarga fl-editur tikkopjaha fil-kampi.
L-għodda taħdem kollha fil-brawżer tiegħek. Xejn minn dak li tikteb ma jintbagħat lil server.
X’tagħmel Content Security Policy
CSP tgħid lill-brawżer minn liema oriġini tista’ paġna tittella’ scripts, stili, immaġini, fonts, frames u konnessjonijiet. Ix-xogħol ewlieni tagħha huwa li tillimita l-cross-site scripting (XSS): anki jekk attakkant jinjetta markup fil-paġna tiegħek, policy tajba twaqqaf l-iscript injettat milli jaħdem. Tikkontrolla wkoll min jista’ jinkorpora l-paġna tiegħek (frame-ancestors), fejn jistgħu jintbagħtu l-formoli (form-action) u lejn x’jista’ jurni <base> (base-uri).
Id-direttivi fetch bħal img-src jew font-src jaqgħu lura fuq default-src meta jkunu nieqsa. base-uri, form-action u frame-ancestors ma jaqgħux lura, u huwa għalhekk li r-reviżjoni titlobhom b’mod espliċitu.
Nonces, hashes u strict-dynamic
Li tippermetti hosts (script-src https://cdn.example.com) jidher sikur, imma spiss jista’ jiġi aggirat: dominji kbar jospitaw endpoints JSONP u libreriji qodma li attakkant jista’ jerġa’ južaha. L-approċċ irrakkomandat mit-timijiet tas-sigurtà tal-brawżers huwa CSP stretta: kull <script> leġittimu jġorr nonce iġġenerat mis-server għal kull risposta, jew ikun permess bl-hash tiegħu, u 'strict-dynamic' iħalli lil dawk l-iscripts fdati jittellgħu l-iscripts li jeħtieġu. F’dik is-setup https: u 'unsafe-inline' huma biss fallbacks għal brawżers qodma ħafna; dawk moderni jinjorawhom.
Nonce jaħdem biss jekk jinbidel f’kull risposta u ma jistax jiġi mbassar. Dak li jidħol minn Żid nonce huwa eżempju: is-server jew il-framework tiegħek irid jiġġenera tiegħu stess. Hash ikopri l-bytes eżatti tal-kodiċi inline, għalhekk jekk terġa’ tifformatja l-iscript tkun teħtieġ hash ġdid.
Header, Report-Only u tag meta
Ibgħat il-policy bħala header ta’ risposta HTTP kull meta tkun tista’. Ittestjaha l-ewwel bħala Content-Security-Policy-Report-Only: il-brawżers jirrapportaw il-ksur (fil-console, u lill-endpoint tiegħek jekk issettjajt wieħed) mingħajr ma jimblokkaw xejn, biex tkun tista’ tirranġa l-paġni qabel ma tinforza. L-issettjar tar-rapporti jżid report-uri għal brawżers eqdem u report-to b’header Reporting-Endpoints.
Il-verżjoni <meta http-equiv> hija prattika fuq hosting statiku, imma l-brawżers jinjoraw frame-ancestors, report-uri, report-to u sandbox fiha, u ma hemm ebda tag meta Report-Only. L-għodda tneħħi dawk id-direttivi mit-tag u tgħidlek bihom.
Il-limiti tar-reviżjoni
Ir-reviżjoni tiskopri problemi komuni: 'unsafe-inline' u 'unsafe-eval' f’script-src, wildcards, skemi wiesgħin bħal https: jew data:, sorsi http://, object-src nieqes, base-uri nieqes, nonces mhux ċitati u direttivi miktuba ħażin. Dan huwa kontroll statiku tat-test tal-policy: ma jittestjax is-sit tiegħek u ma jiżgurax li kull riżors jittella’. Dejjem ittestja l-policy fil-brawżer, b’Report-Only l-ewwel.
Mistoqsijiet frekwenti
'unsafe-inline' f’style-src huwa problema?
Huwa inqas perikoluż milli f’script-src u komuni ħafna, għax ħafna libreriji jissettjaw stili inline. CSS injettat xorta jista’ jħassar il-paġna jew jiffalla data, għalhekk ir-reviżjoni telenkah bħala severità baxxa.
L-hosts ta’ Google Analytics humiex kompluti?
Huma eżempji mill-gwida CSP ta’ Google għat-tag ta’ Google. Google tiġġustahom maż-żmien u jistgħu jkunu meħtieġa dominji reġjonali; iċċekkja d-dokumentazzjoni kurrenti ta’ Google u neħħi dak li ma tużax. Is-snippet inline ta’ gtag.js jeħtieġ ukoll nonce jew hash.
Għaliex il-policy tiegħi qed timblokka l-iscripts inline tiegħi stess?
Hekk kif script-src jiġi ssettjat mingħajr 'unsafe-inline', kull <script> inline u kull attribut onclick= jiġi mblokkat. Aqleb il-kodiċi f’fajl, jew żid nonce jew hash.
CSP tieħu post l-escaping tal-input tal-utenti?
Le. CSP hija t-tieni linja ta’ difiża. Kompli agħmel l-escaping tal-output u validazzjoni tal-input; il-policy tillimita d-dannu meta xi ħaġa tgħaddi.
Nista’ jkolli diversi policies?
Iva: jekk paġna tirċievi diversi headers CSP, riżors irid jissodisfa lil kollha. Waħħal policy waħda kull darba fl-evalwatur.
Għodod relatati
- Generatur tar-ridirezzjonijiet .htaccess Iġġenera ridirezzjonijiet 301 u 302 għal .htaccess jew Nginx, ġiegħel HTTPS u www, mexxi dominju u irranġa s-slashes, b’kontrolli għal linki u katini.
- Generatur tal-meta tags Generatur tal-meta tags b’xejn għat-titlu, il-meta description, l-URL kanoniku, robots u viewport, b’kontrolli tat-tul u HTML eskejpjat sew.
- Ġeneratur tal-hash Iġġenera hashes MD5, SHA-1, SHA-256 u SHA-512 ta’ test jew fajls ta’ kwalunkwe daqs, u vverifika checksums. Kollox jaħdem fil-brawżer tiegħek.
- Generatur tar-robots.txt Oħloq fajl robots.txt validu b’gruppi ta’ user-agent, regoli Allow u Disallow, sitemaps u crawl-delay, b’kontrolli għall-iżbalji komuni.