Alege planul

HSTS și antetele de securitate, din .htaccess

Ce fac HSTS, X-Content-Type-Options, Referrer-Policy și celelalte antete de securitate, cum le pui în .htaccess pe găzduirea NBT Host și cum le verifici.

  • Actualizat
ghid · securitate
Pași
8
Citești în
4min
Secțiuni
6
Începe ghidul

Odată cu fiecare pagină, serverul trimite browserului câteva rânduri de instrucțiuni, numite antete (headers). Unele dintre ele îi spun browserului să fie mai prudent: să folosească doar https://, să nu lase alte site-uri să-ți încadreze paginile, să nu trimită mai departe adresa completă a paginii. Le pui o singură dată, în .htaccess, și apără toți vizitatorii.

Ce vei reuși

  • pornești HSTS, ca browserele să intre pe site doar prin https://;
  • adaugi antetele de bază, care nu strică nimic pe un site obișnuit;
  • verifici că serverul le trimite.

Înainte să începi

  • Certificatul SSL e valid și „Force https” e pornit pentru domeniu și pentru www (vezi Certificatul SSL gratuit (Let's Encrypt) și Redirecționare spre HTTPS și www). HSTS fără un certificat valid blochează site-ul.
  • Fă o copie a fișierului .htaccess: în Enhance, fila „Files”, clic dreapta pe .htaccess » „Download”.
  • Serverele NBT Host folosesc Apache, care citește regulile din .htaccess.
  • Denumirile din Enhance sunt în engleză, exact cum apar pe ecran. Dacă panoul e în română, îl treci pe engleză din dreapta sus: „My account” » „Language”.

Ce face fiecare antet

AntetCe face
Strict-Transport-Security (HSTS)browserul ține minte, pe perioada dată, că site-ul se deschide doar pe https://, chiar dacă cineva scrie http://
X-Content-Type-Options: nosniffbrowserul nu „ghicește” tipul unui fișier; un fișier urcat ca imagine nu poate fi rulat ca script
X-Frame-Options: SAMEORIGINalte site-uri nu-ți pot încadra paginile într-un <iframe>, deci nu pot păcăli vizitatorii să apese butoane ascunse
Referrer-Policy: strict-origin-when-cross-origincând vizitatorul pleacă spre alt site, acela află doar domeniul tău, nu adresa completă a paginii
Permissions-Policyoprește accesul paginii la cameră, microfon sau locație, dacă site-ul nu le folosește

Pașii

A. Adaugi antetele

  1. În Enhance, deschide „Websites”, site-ul, fila „Files” și intră în public_html.
  2. Clic dreapta pe .htaccess » „Edit”. Dacă nu există, creează-l cu „New file”.
  3. Adaugă la finalul fișierului:
    <IfModule mod_headers.c>
      Header always set Strict-Transport-Security "max-age=31536000" "expr=%{HTTPS} == 'on'"
      Header always set X-Content-Type-Options "nosniff"
      Header always set X-Frame-Options "SAMEORIGIN"
      Header always set Referrer-Policy "strict-origin-when-cross-origin"
      Header always set Permissions-Policy "camera=(), microphone=(), geolocation=()"
    </IfModule>
  4. La WordPress, pune blocul în afara rândurilor # BEGIN WordPress și # END WordPress: ce e între ele poate fi rescris de WordPress.
  5. Apasă „Save”.

max-age=31536000 înseamnă un an. Dacă vrei să începi cu grijă, pune întâi max-age=300 (5 minute), verifică site-ul o zi, apoi crește la un an.

B. Verifici

  1. Deschide site-ul, apasă F12 (pe Mac Cmd+Option+I), fila Network (Rețea), reîncarcă pagina și apasă pe primul rând, cel al paginii. La Response Headers trebuie să vezi antetele adăugate.
  2. Sau, din Terminal (Mac, Linux) ori PowerShell (Windows): curl -I https://domeniul-tau.ro/.
  3. Verifică paginile importante: formularele, plata, hărțile, videoclipurile încorporate.

Ce să NU adaugi fără să știi ce faci

  • includeSubDomains și preload la HSTS. Cu includeSubDomains, orice subdomeniu fără certificat (de exemplu un serviciu extern pus pe programari.domeniul-tau.ro) devine inaccesibil. preload trimite domeniul într-o listă inclusă în browsere, din care se iese greu, în luni. Pentru un site mic nu e nevoie de ele.
  • Content-Security-Policy (CSP). E cel mai puternic antet, dar și cel mai ușor de greșit: un CSP prea strict blochează Google Analytics, fonturile, chatul sau plata. Dacă vrei unul, începe cu varianta care doar raportează, Content-Security-Policy-Report-Only, și cere ajutorul celui care a făcut site-ul.
  • X-Frame-Options pe un site care chiar trebuie încadrat de alt site al tău (de exemplu un formular pus într-un <iframe> pe alt domeniu). Acolo scoate rândul.

Dacă ceva nu merge

  • Site-ul dă „500 Internal Server Error” după salvare. O greșeală de scriere în bloc, de obicei o ghilimea lipsă. Șterge blocul, salvează și pune-l din nou, copiat exact (vezi Eroarea 500 Internal Server Error și pagina albă).
  • Nu vezi antetele. Verifică să fi salvat .htaccess în folderul site-ului (public_html sau folderul subdomeniului), apoi golește cache-ul (pluginul de cache, Cloudflare) și reîncarcă.
  • După HSTS, un subdomeniu nu se mai deschide. Subdomeniul nu are certificat valid. Emite-i certificatul (vezi Certificatul SSL gratuit (Let's Encrypt)). Dacă ai pus includeSubDomains, scoate-l; browserele care l-au văzut îl țin minte până expiră max-age.
  • Un <iframe> de pe alt site al tău nu se mai încarcă. E efectul lui X-Frame-Options. Scoate rândul sau scrie-ne și îți spunem varianta cu CSP frame-ancestors.
Suport

Te-ai blocat? Îl facem împreună.

Scrie-ne ce pas nu merge și, dacă se poate, trimite o captură de ecran. Îți răspundem în programul de lucru.

Telefon și WhatsApp+40 775 396 021
Programluni – vineri, 9:00 – 18:00

Nu ne trimite niciodată parola pe WhatsApp sau pe email. Ce informații ne ajută să rezolvăm din prima: cum ceri ajutor.