Verificarea antetelor de securitate

Se lipesc antetele de răspuns ale unei pagini —curl -sI https://your-site.example/într-un terminal, sau blocul din panoul Network al browserului — și se obține onotă de la A+ la Fpe lista de verificare OWASP Secure Headers:Strict-Transport-Security, Content-Security-Policy, X-Content-Type-Options, protecție la încadrare,Referrer-Policy, Permissions-Policy, trio-ul de izolare cross-origin, scurgerile de versiune, antetele depreciate și indicatorii cookie — fiecare constatare asociată cu exactnginx, Apache și Expresslinii care o remediază. Totul rulează în browser; pagina nu contactează niciodată site-ul.
Linia de stare este opțională. Toate liniile multiple Set-Cookie sunt verificate. Pentru a avea o politică de notat, se construiește una în generatorul CSP; pentru a descompune un bloc de antete linie cu linie, se folosește analizorul de antete HTTP.
Încă nu există notă. Se lipesc antetele de răspuns și se apasă Verifică antetele, sau se încarcă un exemplu.
Liniile de remediere pentru fiecare constatare apar aici după o verificare.
Domeniul acestui verificator față de Verificarea SSL. Această pagină notează antetele de răspuns de securitate (lista OWASP de mai sus). Verificarea SSL notează configurarea HTTPS: lanțul certificatului, versiunile de protocol, puterea cifrurilor și conținutul mixt. HSTS și indicatorii cookie apar pe ambele pagini, pentru că ambele liste le includ, dar cu perspective diferite — se rulează ambele verificări pentru imaginea completă.
Autotest
Rulează din nou notatorul față de blocuri de antete remediate: exemplul bun la A+, exemplul prost la F cu fiecare penalizare activată, fiecare regulă izolată (aritmetica notei), limita pentru scurgerea de versiune, avertismentele cookie, notele de calitate CSP, frame-ancestors contorizat drept protecție la încadrare, pragurile notelor de ambele părți ale fiecărei limite, fragmentele de remediere și căile negative. Nimic nu se trimite nicăieri.
Ce sunt antetele de securitate?
Într-o propoziție: antetele de securitate sunt antete de răspuns care cer browserului să aplice o protecție pe care nu o poate deduce singur — să nu încarce scripturi de la origini necunoscute, să nu mai vorbească HTTP simplu cu această gazdă, să nu încadreze această pagină — și costă câte o linie de configurare fiecare.
Antetele pe care le notează această pagină
AntetProtejează împotrivavaloarea recomandată OWASP
Strict-Transport-Securityretrogradarea protocolului și furtul de cookie-uri la prima cerere HTTP simplămax-age=63072000; includeSubDomains
Content-Security-Policycross-site scripting, încorporări rău intenționate, conținut mixtdefault-src 'self'; form-action 'self'; base-uri 'self'; object-src 'none'; frame-ancestors 'none'; upgrade-insecure-requests
X-Content-Type-Optionsconfuzia MIME (un script servit ca imagine)nosniff
X-Frame-Options / CSP frame-ancestorsclickjacking (pagina încadrată de un atacator)deny / 'none'
Referrer-Policyscurgerea de URL-uri (cu token-uri) către site-uri terțeno-referrer
Permissions-Policypagini și încorporări care folosesc în tăcere camera, microfonul, locațiatoate funcțiile dezactivate
Cross-Origin-Opener-Policyalte ferestre care ajung în contextul de navigare al paginiisame-origin
Cross-Origin-Embedder-Policyîncărcarea de resurse care nu s-au înscris (activează izolarea proceselor)require-corp
Cross-Origin-Resource-Policyresursele încorporate de alte site-urisame-origin
Cum se calculează nota

Se pornește de la 100 și se scade: −25 pentru lipsa CSP, −20 pentru lipsa HSTS, −10 fiecare pentru lipsa X-Content-Type-Options, Referrer-Policy sau a oricărei protecții la încadrare, −5 fiecare pentru trio-ul cross-origin și Permissions-Policy, −5 pentru scurgerile de versiune din Server/X-Powered-By (plafonat), și −5 pentru o valoare diferită de zero la X-XSS-Protection. Notele pe litere: 100 = A+, 90+ = A, 80+ = B, 70+ = C, 60+ = D, sub acestea = F. Notele consultative (indicatorii cookie, controlul cache-ului, calitatea CSP) nu scad punctaj.

Greșeli frecvente
  • Setarea antetelor pe răspunsurile greșite. Se adaugă pe fiecare răspuns, inclusiv pe paginile de eroare și redirecționări — asta înseamnă always din add_header ... always; (nginx) și Header always set (Apache).
  • Testarea doar a paginii de pornire. Proxy-urile, cache-urile și aplicațiile vechi elimină sau suprascriu adesea antete doar pe unele căi. Se verifică paginile importante: autentificarea, plata, punctele finale API.
  • Păstrarea X-XSS-Protection. Auditorul pe care îl conducea a provocat vulnerabilități proprii; browserele l-au eliminat. O valoare diferită de zero costă acum punctaj intenționat — se elimină și se lasă CSP să facă treaba.
  • Convingerea că X-Frame-Options este actual. Nu poate permite origini specifice și nu este în standardul CSP; frame-ancestors este înlocuitorul modern. Păstrarea ambelor în perioada de tranziție este în regulă — această pagină acceptă oricare.
  • Afișarea bannerelor de versiune. Server: Apache/2.4.58 (Unix) restrânge căutarea unui atacator după erori cunoscute, fără niciun beneficiu. Versiunea se elimină; numărul de linii se ține mic.
Întrebări frecvente

De ce COOP/COEP/CORP valorează doar 5 puncte fiecare? Trio-ul este cel mai nou strat, necesar în principal acolo unde se dorește izolarea proceselor (SharedArrayBuffer, întărirea împotriva Spectre). Un site fără ele are în continuare protecțiile de bază; cu ele, unele încorporări cross-origin necesită ajustări — motiv pentru care cântăresc mai puțin decât CSP sau HSTS.

Înseamnă o notă mare că site-ul este sigur? Nu — înseamnă că antetele de răspuns sunt setate. Antetele de securitate sunt un strat: configurarea TLS, gestionarea sesiunilor, validarea datelor de intrare și aplicarea corecturilor decid în continuare dacă site-ul este cu adevărat sigur. Pentru stratul TLS se rulează Verificarea SSL.

De ce este valoarea Permissions-Policy atât de lungă? Linia de bază OWASP dezactivează explicit fiecare funcție, astfel încât un browser care adaugă funcții noi să nu le reactiveze în tăcere. O valoare mai scurtă, precum camera=(), microphone=(), geolocation=(), este un început — doar că trebuie știut ce rămâne activat.

Pot verifica antetele oricărui site de aici? Această pagină nu face niciodată cereri de rețea — notează exact textul lipit, deci funcționează în spatele firewall-urilor și pe gazde interne, iar nimic din ce se inspectează nu părăsește calculatorul. Preluarea antetelor înseamnă un curl -sI în terminal.

Ce este cu Clear-Site-Data și X-Permitted-Cross-Domain-Policies? Sunt utile în scenarii înguste (răspunsuri de deconectare; vizualizatoare vechi de PDF/Flash). Aici sunt consultative, nu punctate — trimiterea Clear-Site-Data pe fiecare răspuns ar șterge spațiul de stocare al utilizatorilor la fiecare încărcare de pagină.