Generator Content Security Policy (CSP)
Creează antetul Content-Security-Policy, eticheta meta și varianta Report-Only cu șabloane, nonce și hash SHA-256, apoi analizează o politică existentă.
Pornește de la un șablon
Gazdele Google sunt exemple preluate din ghidul CSP al Google pentru eticheta Google. Google le modifică din când în când: verifică documentația actuală și șterge ce nu folosești.
Într-o etichetă <meta>, browserele ignoră frame-ancestors, report-uri, report-to și sandbox, iar Report-Only nu este acceptat. Pune eticheta la începutul lui <head>: se aplică doar conținutului care vine după ea.
Analiza acestei politici
Aceste verificări nu au găsit puncte slabe.
Evaluează o politică existentă
Cum creezi o politică
- Alege un punct de plecare la Pornește de la un șablon: Strict (nonce + strict-dynamic), Site static blocat la maximum, Site obișnuit sau Obișnuit + Google Analytics / Ads. Editorul se deschide cu șablonul pentru site obișnuit.
- Ajustează Directive. Fiecare câmp primește surse separate prin spațiu; un câmp gol omite directiva.
- Folosește Adăugare rapidă pentru a adăuga un cuvânt-cheie la Directivă aleasă:
'self','none','unsafe-inline','strict-dynamic',https:,data:… Adaugă un nonce inserează un nonce aleatoriu pe 128 de biți. - Ca să permiți un anumit script inline fără
'unsafe-inline', lipește-l (sau HTML-ul din jurul lui) la Calculează hash pentru un script sau stil inline și apasă Calculează SHA-256 și adaugă. - Bifează upgrade-insecure-requests dacă unele URL-uri vechi folosesc încă
http://, și, dacă vrei, introdu un URL-ul endpoint-ului de raportare (opțional). - Copiază Antet HTTP, Antet Report-Only (testare fără blocare) sau Etichetă HTML . Analiza acestei politici se actualizează pe măsură ce scrii.
Ca să verifici o politică pe care o ai deja, lipește-o la Evaluează o politică existentă și apasă Evaluează politica; Încarcă în editor o copiază în câmpuri. Totul se întâmplă în browserul tău: politica ta nu este trimisă către niciun server.
Ce face o Content Security Policy
CSP îi spune browserului din ce origini poate o pagină să încarce scripturi, stiluri, imagini, fonturi, cadre și conexiuni. Rolul ei principal este să limiteze atacurile cross-site scripting (XSS): chiar dacă un atacator injectează cod în pagina ta, o politică bună oprește rularea scriptului injectat. Ea controlează și cine îți poate încadra pagina (frame-ancestors), unde pot fi trimise formularele (form-action) și către ce poate indica <base> (base-uri).
Directivele fetch, precum img-src sau font-src, revin la default-src când lipsesc. base-uri, form-action și frame-ancestors nu au această valoare de rezervă, de aceea analiza le cere explicit.
Nonce, hash și strict-dynamic
Permiterea unor gazde (script-src https://cdn.example.com) pare sigură, dar poate fi adesea ocolită: domeniile mari găzduiesc endpoint-uri JSONP și biblioteci vechi pe care un atacator le poate refolosi. Abordarea recomandată de echipele de securitate ale browserelor este o CSP strictă: fiecare <script> legitim poartă un nonce generat de server pentru fiecare răspuns sau este permis prin hash-ul lui, iar 'strict-dynamic' lasă aceste scripturi de încredere să încarce scripturile de care au nevoie. Într-o astfel de configurație, https: și 'unsafe-inline' sunt doar soluții de rezervă pentru browserele foarte vechi; cele moderne le ignoră.
Un nonce funcționează doar dacă se schimbă la fiecare răspuns și nu poate fi ghicit. Cel inserat de Adaugă un nonce este doar un exemplu: serverul sau framework-ul tău trebuie să genereze propriul nonce. Un hash acoperă exact octeții codului inline, așa că reformatarea scriptului cere un hash nou.
Antet, Report-Only și etichetă meta
Trimite politica ca antet de răspuns HTTP ori de câte ori poți. Pune-o mai întâi în producție ca Content-Security-Policy-Report-Only: browserele raportează încălcările (în consolă și la endpoint-ul tău, dacă ai setat unul) fără să blocheze nimic, așa că îți poți repara paginile înainte să aplici politica. Setările de raportare adaugă report-uri pentru browserele mai vechi și report-to cu un antet Reporting-Endpoints.
Varianta <meta http-equiv> e utilă pe găzduirea statică, dar browserele ignoră în ea frame-ancestors, report-uri, report-to și sandbox, iar o etichetă meta Report-Only nu există. Instrumentul elimină aceste directive din etichetă și te anunță.
Întrebări frecvente
Este o problemă 'unsafe-inline' în style-src?
Este mai puțin periculos decât în script-src și foarte des întâlnit, fiindcă multe biblioteci setează stiluri inline. CSS-ul injectat poate totuși strica aspectul unei pagini sau poate scoate date, de aceea analiza îl marchează cu severitate scăzută.
Sunt complete gazdele pentru Google Analytics?
Sunt exemple din ghidul CSP al Google pentru eticheta Google. Google le ajustează în timp și pot fi necesare domenii regionale; verifică documentația actuală a Google și șterge ce nu folosești. Fragmentul inline gtag.js are nevoie, la rândul lui, de un nonce sau de un hash.
De ce îmi blochează politica propriile scripturi inline?
Odată ce script-src este setat fără 'unsafe-inline', fiecare <script> inline și fiecare atribut onclick= este blocat. Mută codul într-un fișier sau adaugă un nonce ori un hash.
Înlocuiește CSP escaparea datelor introduse de utilizatori?
Nu. CSP este a doua linie de apărare. Continuă să escapezi datele afișate și să validezi datele primite; politica limitează pagubele atunci când ceva scapă.
Pot avea mai multe politici?
Da: dacă o pagină primește mai multe antete CSP, o resursă trebuie să le respecte pe toate. Lipește câte o politică pe rând în evaluator.
Instrumente similare
- Generator de redirecționări .htaccess Generează redirecționări 301 și 302 pentru .htaccess sau Nginx, forțează HTTPS și www, mută un domeniu, cu verificarea buclelor și a lanțurilor.
- Generator de meta taguri Generator gratuit de meta taguri pentru titlu, meta descriere, URL canonic, robots și viewport, cu verificarea lungimii și HTML escapat corect.
- Generator de hash Generează hash-uri MD5, SHA-1, SHA-256 și SHA-512 pentru text sau fișiere de orice dimensiune și verifică sumele de control. Totul rulează în browser.
- Generator robots.txt Creează un fișier robots.txt valid, cu grupuri user-agent, reguli Allow și Disallow, sitemap-uri și crawl-delay, cu verificarea celor mai frecvente greșeli.