Defaults.Exposed

Defaults.ExposedRemedieri › Content-Security-Policy (CSP)

Cum să remediezi Content-Security-Policy (CSP)

O Politică de Securitate a Conținutului este o regulă de siguranță pe care site-ul tău o transmite browserului fiecărui vizitator, spunându-i exact ce cod are voie să ruleze. Fără ea, dacă ceva rău ajunge vreodată pe o pagină — printr-o casetă de comentarii, un plugin spart sau un script terț — browserul îl va rula liber, inclusiv codul care în tăcere colectează numerele de card și parolele clienților tăi pe măsură ce le tastează, cu lacătul în continuare afișat.

Concluzia pentru afacerea ta: Dacă site-ul tău este vreodată modificat, codul malițios poate citi detaliile de card de plată și autentificările clienților tăi direct de pe pagina ta de plată în timp ce totul arată complet normal — lăsându-te cu dispute, reclamații de fraudă, o breșă de date raportabilă și un eșec de verificare pe care echipele de securitate ale clienților mai mari îl folosesc pentru a bloca sau ucide o tranzacție.

Ce te poate costa

De ce contează. Lacătul dovedește că conexiunea la site-ul tău este privată, dar nu face nimic pentru a controla ce cod rulează odată ce un vizitator este pe pagină. O Politică de Securitate a Conținutului este garanția care face asta — spune browserelor să ignore orice script care nu a venit dintr-o sursă pe care o ai încredere, astfel că un singur câmp modificat, anunț sau plugin nu poate fi transformat într-un instrument pentru furtul banilor și datelor clienților tăi. Este o verificare notată pe foaia ta de punctaj, valorând puncte reale, și este unul din primele lucruri pe care le caută o revizuire profesionistă de securitate.

Ce este, în cuvinte simple

Când cineva vizitează site-ul tău, browserul descarcă pagina ta și rulează orice cod este pe ea — scripturile care fac meniurile să se deschidă, butoanele să funcționeze, formularele de plată să se trimită și așa mai departe. Implicit, browserul le are pe toate de încredere. Nu are nicio modalitate de a ști ce cod este cu adevărat al tău și ce a fost introdus de altcineva.

O Politică de Securitate a Conținutului (adesea abreviată CSP) este o scurtă listă de reguli pe care site-ul tău o atașează la fiecare pagină, spunând browserului: “rulează numai cod din aceste surse pe care le-am aprobat și refuză orice altceva.” Este diferența dintre o discotecă care lasă pe oricine înăuntru și una cu o listă de invitați la ușă.

Motivul pentru care aceasta contează atât de mult este că site-urile web sunt modificate constant — nu întotdeauna prin piratarea serverului tău, ci prin ușile din spate pe care cele mai multe site-uri le lasă deschise: un câmp de comentarii, o casetă de căutare, un plugin depășit, un script terț pentru anunțuri sau analiză sau un widget de chat. Dacă un atacator obține chiar și o linie din propriul lor cod pe una din paginile tale, browserul îl rulează ca și cum ar fi al tău. De acolo poate citi tot ce tastează clienții tăi — numere de card, parole, adrese — și le poate trimite în tăcere în altă parte.

Ce te poate costa

Aceasta nu este abstractă. Atacul pe care o Politică de Securitate a Conținutului îl previne — codul injectat într-o pagină care fură date de la clienții tăi — se află în spatele unora din cele mai mari breșe de colectare de carduri din dosare. Iată cum tinde să se desfășoare pentru o afacere normală:

Ce este de fapt (detaliul)

O Politică de Securitate a Conținutului este livrată ca un singur antet de răspuns HTTP — o linie pe care serverul tău web o trimite cu fiecare pagină. Valoarea sa este un set de directive, fiecare denumind un tip de conținut și sursele permise pentru el. De exemplu:

Content-Security-Policy: default-src 'self'; script-src 'self'; object-src 'none'; frame-ancestors 'self'

În termeni simpli, aceasta spune: implicit încarcă lucruri numai de pe propriul meu site; rulează scripturi numai de pe propriul meu site; nu permite pluginuri de stil vechi; și nu lasă alte site-uri să încorporeze al meu într-un cadru.

Cum arată “bine”. Verificarea noastră nu caută numai prezența antetului — citește politica directivă cu directivă și notează cât de puternică este de fapt. O politică puternică:

Cum se remediază (gratuit, ~1–2 ore)

Predă asta persoanei tale IT sau celui care rulează site-ul tău — remedierea în sine este complet gratuită. Percepem taxe numai pentru monitorizarea că rămâne activă și corectă în timp; activarea nu costă nimic. Motivul pentru care aceasta durează o oră sau două mai degrabă decât minute este pasul de trial atent care o oprește să blocheze accidental părți ale propriului tău site.

  1. Începe în modul numai-raport — nu aplica încă. Adaugă un antet de răspuns Content-Security-Policy-Report-Only. Aceasta urmărește și înregistrează ce ar fi blocat fără a bloca nimic efectiv, astfel că site-ul live continuă să funcționeze în timp ce înveți de ce depinde cu adevărat fiecare pagină.

  2. Construiește politica din ce utilizează de fapt site-ul tău. Revizuiește rapoartele pentru a găsi fiecare sursă legitimă de scripturi, stiluri, fonturi și imagini — propriul domeniu, analitica ta, furnizorul de plăți, gazda de fonturi, widget-ul de chat — și listează-le ca surse permise. Un punct de plecare solid este default-src 'self' plus intrări explicite pentru terțele de încredere pe care le folosești de fapt.

  3. Evită golurile care înfrâng tot scopul. Evită 'unsafe-inline' și 'unsafe-eval' pentru scripturi și evită surse wildcard precum * și scheme goale precum https: pentru scripturi. Unde scripturile inline sunt inevitabile, folosește un nonce sau hash.

  4. Blochează cadrarea și pluginurile. Adaugă frame-ancestors 'self' (aceasta oprește de asemenea alte site-uri să le încorporeze pe ale tale pentru a-ți înșela clienții) și object-src 'none' pentru a bloca atacuri bazate pe pluginuri moștenite.

  5. Comută de la numai-raport la aplicare. Odată ce rapoartele sunt curate și site-ul funcționează, schimbă numele antetului din Content-Security-Policy-Report-Only în Content-Security-Policy. Acesta este pasul care livrează de fapt protecție — o politică numai-raport nu o face și nu va trece verificarea.

    Unde setezi antetul depinde de platforma ta:

    • Cloudflare: Reguli → Reguli de transformare → Modifică antetul de răspuns → setează Content-Security-Policy.
    • Nginx: add_header Content-Security-Policy "default-src 'self'; script-src 'self'; object-src 'none'; frame-ancestors 'self';" always;
    • Apache: Header always set Content-Security-Policy "default-src 'self'; script-src 'self'; object-src 'none'; frame-ancestors 'self';"
    • IIS (web.config): adaugă un antet de răspuns HTTP personalizat denumit Content-Security-Policy cu politica ca valoare.
  6. Reverificați domeniul pentru a confirma că politica apare acum ca activată și în aplicare, fără goluri slăbitoare.

Greșeli comune

Întrebări frecvente

Nu sunt tehnic — pot rezolva asta singur?

Nu trebuie să înțelegi detaliile. Aceasta este o setare adăugată de cel care rulează site-ul sau găzduirea ta, iar pe servicii precum Cloudflare este în mare parte ghidată. Predă-le secțiunea 'Cum se remediază' de mai jos. Este gratuită; singura precauție este că ar trebui lansată cu atenție într-un trial de urmărire mai întâi astfel că nu blochează accidental părți ale propriului tău site — ceea ce acoperă exact pașii.

Am deja lacătul și un certificat SSL — nu este site-ul meu securizat?

Lacătul securizează livrarea paginii tale; nu controlează ce rulează în interiorul ei. Dacă codul malițios ajunge vreodată pe o pagină — prin intermediul unui plugin spart, unui anunț compromis sau unui câmp injectat — lacătul nu va opri furtul datelor. O Politică de Securitate a Conținutului este stratul care limitează ce are voie să ruleze în primul rând. Ele protejează lucruri diferite și vrei ambele.

Ar putea activarea asta să strice site-ul meu?

Poate dacă este activată agresiv dintr-o dată, deoarece poate bloca scripturi legitime pe care le folosești de fapt. De aceea abordarea standard este să începi într-un mod 'numai-raport' de trial care urmărește fără a bloca, să remediezi orice semnalează și numai atunci să o aplici. Făcut în acest mod este sigur — iar pasul de trial este integrat în remedierea de mai jos.

Am pus-o deja în modul 'numai-raport' — suntem acoperiți?

Nu, și aceasta este cea mai frecventă falsă senzație de siguranță. Modul numai-raport urmărește și înregistrează ce ar fi blocat, dar nu blochează nimic — vizitatorii primesc zero protecție reală. Este numai primul pas sigur. Verificarea noastră acordă modului numai-raport o mică fracțiune din creditul unei politici reale și nu o va înregistra ca trecere. Ești protejat numai odată ce comutezi la modul de aplicare.

Aceasta afectează scorul nostru sau este numai consultativ?

Afectează scorul. Verificarea Politicii de Securitate a Conținutului este notată și valorează până la 25 de puncte în categoria Securitate Web. O politică lipsă sau slabă este marcată cu severitate ridicată și scade nota — și este exact genul de decalaj pe care un chestionar de securitate al unui client îl întreabă.

Dezvoltatorul nostru a adăugat o politică dar scorul este în continuare scăzut — de ce?

O politică poate exista și totuși să fie slabă. Cei mai frecvenți vinovați sunt goluri precum 'unsafe-inline' și 'unsafe-eval' pentru scripturi sau surse wildcard (un simplu *), care redeschid exact decalajul pe care politica îl are ca scop să îl închidă. Verificarea noastră citește politica directivă cu directivă și notează în jos acele slăbiciuni — o politică care permite orice notează puțin mai bine decât a nu avea niciuna. Remedierea este să înăsprești regulile de script folosind nonce-uri sau hash-uri în loc de acele goluri.