Salt la conținut

Setări cookie-uri

Alegeți pentru fiecare tip ce cookie-uri permiteți. Puteți modifica oricând alegerea prin Setări cookie-uri, în partea de jos a fiecărei pagini. Declarație de confidențialitate

Necesare

Mereu active

Necesare pentru autentificare, pentru păstrarea coșului și pentru a vă reține alegerile. Acestea sunt mereu active.

Ce cookie-uri?
  • weboke_sessie, weboke_klant, weboke_remember: sesiunea și menținerea autentificării
  • weboke_basket: coșul de cumpărături
  • wkBtwIncl: afișarea prețurilor cu sau fără TVA
  • wok_cookies: alegerea privind cookie-urile, 12 luni

Măsoară ce reclamă duce la o vizită sau o comandă, ca să nu plătim pentru reclame care nu aduc nimic.

Ce cookie-uri?
  • Google Ads prin Google Tag Manager (_gcl_au, _gcl_aw), până la 90 de zile
  • OpenAI Ads, reclame în ChatGPT
  • wok_aff: prin ce partener ați ajuns la noi (program de afiliere), 60 de zile

4,6

Țară și limbă

Fiecare țară are propriul site, cu prețurile și TVA-ul pentru țara respectivă.

Vedeți

Site-ul dumneavoastră web: https, HSTS și antete de securitate

Modulul 4: E-mail, site web și domeniu · Timp de citire: 11 minute

Obiectiv de învățare: După această lecție, veți putea verifica securitatea de bază a site-ului dumneavoastră web: un certificat valid, redirecționarea către https, HSTS cu un max-age corect, cele mai importante antete de securitate și actualizarea CMS-ului dumneavoastră.
Concepte-cheie: certificat TLS, https, redirecționare către https, HSTS, max-age, includeSubDomains, preload, antet HTTP, Content-Security-Policy, X-Content-Type-Options, frame-ancestors, X-Frame-Options, Referrer-Policy

Ce se întâmplă atunci când cineva deschide site-ul dumneavoastră

Dacă un client scrie example.com în bara de adrese, browserul solicită pagina de la serverul dumneavoastră web. Această comunicare se face prin HTTP. În cazul https, în jurul acesteia există o conexiune criptată: TLS. Pentru aceasta site-ul dumneavoastră web are nevoie de un certificat TLS (adesea numit încă certificat SSL). Certificatul dovedește că serverul aparține cu adevărat de example.com, iar criptarea asigură că nimeni pe parcurs nu poate citi sau modifica nimic. Acest lucru este important în rețelele wifi publice, unde nu știți cine administrează rețeaua (lecția 5.3).

La fiecare răspuns, serverul trimite, pe lângă pagina propriu-zisă, și un set de antete: linii scurte cu informații și instrucțiuni pentru browser. Nu le vedeți pe ecran, dar ele determină în mare măsură cât de sigur se comportă browserul cu site-ul dumneavoastră. O parte dintre aceste antete sunt antete de securitate. În această lecție parcurgem cele patru straturi: certificat, redirecționare, HSTS și antete. Apoi ne uităm pe scurt la actualizarea site-ului dumneavoastră web propriu-zis.

Stratul 1: un certificat valid

Un certificat este în regulă dacă îndeplinește trei condiții:

  1. nu este expirat;
  2. este emis de un emitent de încredere (o autoritate de certificare pe care browserele o cunosc, precum Let's Encrypt sau o firmă comercială);
  3. este valabil pentru exact numele pe care vizitatorul îl deschide: example.com și www.example.com, dacă le folosiți pe amândouă.

Aproape orice furnizor de găzduire (hosting) organizează în prezent un certificat gratuit care se reînnoiește automat. Dacă apare o problemă, de obicei este pentru că numele de domeniu indică spre un alt server sau pentru că o înregistrare CAA blochează emitentul (lecția 4.3).

Important de știut: un lacăt nu spune nimic despre fiabilitatea site-ului. El indică doar că legătura este criptată și că certificatul corespunde numelui din bara de adrese. Site-urile de phishing de pe mijnbank-veilig.example au la fel de bine un lacăt. De aceea veți învăța în lecția 3.2 cum să citiți domeniul.

Stratul 2: redirecționare permanentă către https

Un certificat în sine nu este suficient. Cine deschide http://example.com, de exemplu printr-un link vechi sau doar tastând numele, trebuie să ajungă automat la versiunea https. Aceasta se numește redirecționare (un redirect, de obicei cu codul de stare 301).

O ordine corectă este:

http://example.com      ->  https://example.com
https://example.com     ->  https://www.example.com   (doar dacă folosiți www ca adresă principală)
http://www.example.com  ->  https://www.example.com

Atenție la prima linie: redirecționați mai întâi de la http la https pe același nume, abia apoi, eventual, la www. Astfel browserul poate primi instrucțiunea HSTS și pentru numele simplu. internet.nl verifică exact acest aspect.

O greșeală frecventă este redirecționarea dublă: atât în panoul de găzduire (hosting), cât și într-un plugin sau în .htaccess. Acest lucru poate genera o buclă fără sfârșit ("prea multe redirecționări"). Folosiți un singur loc.

Stratul 3: HSTS

Redirecționarea are un moment slab: prima cerere trece încă necriptat prin http. Un atacator din aceeași rețea poate intercepta acea cerere și poate menține vizitatorul pe o versiune falsă, necriptată. Pentru aceasta există HSTS (HTTP Strict Transport Security, RFC 6797).

Prin HSTS, site-ul dumneavoastră trimite prin https un antet:

Strict-Transport-Security: max-age=31536000; includeSubDomains

Browserul reține atunci: "acest site se deschide doar prin https, timp de următoarele 31.536.000 de secunde (un an)". Dacă vizitatorul tastează mai târziu http://example.com, browserul transformă el însuși adresa în https, chiar înainte ca ceva să fie trimis prin rețea. Prima cerere vulnerabilă dispare.

ComponentăSemnificație
max-age=Cât timp reține browserul, în secunde. internet.nl consideră cel puțin un an (max-age=31536000) ca fiind suficient; o perioadă scurtă nu protejează persoanele care vizitează site-ul dumneavoastră doar ocazional.
includeSubDomainsSe aplică și tuturor subdomeniilor, precum shop.example.com și mail.example.com.
preloadSolicitați includerea în lista integrată în browsere (hstspreload.org). Astfel chiar și prima vizită este protejată. Cerințe: printre altele, un max-age de cel puțin un an, includeSubDomains și toate subdomeniile pe https. Eliminarea din listă durează mult.
max-age=0Șterge instrucțiunea reținută.

Trei lucruri pe care trebuie să le știți înainte de a activa HSTS:

  • Mai întâi trebuie ca https să funcționeze peste tot. Un browser care a reținut HSTS și întâlnește o eroare de certificat nu oferă vizitatorului niciun buton pentru a continua totuși (RFC 6797, paragraful 12.1). Dacă certificatul dumneavoastră expiră sau nu este corect pentru www, site-ul dumneavoastră devine inaccesibil pentru acei vizitatori până la rezolvarea problemei.
  • includeSubDomains afectează tot ce se află sub domeniul dumneavoastră. Un subdomeniu vechi fără certificat, de exemplu o pagină de imprimantă sau de cameră pe camera.example.com, nu mai poate fi deschis după aceea.
  • Construiți-l treptat. Începeți cu un max-age scurt (de exemplu o zi), verificați dacă totul funcționează și creșteți-l treptat până la un an. Așteptați la fiecare pas întreaga perioadă.

Un antet HSTS primit prin http obișnuit este ignorat de browser. Prin urmare îl veți vedea doar în răspunsul https.

Stratul 4: antete de securitate

Pe lângă HSTS, există câteva antete care spun browserului ce are voie și ce nu are voie să facă cu paginile dumneavoastră. Nu este nevoie să le aveți pe toate perfecte, dar primele trei sunt simple și fără riscuri.

AntetÎmpotriva a ceValoare corectă
X-Content-Type-OptionsBrowserul începe să ghicească ce tip de fișier este, astfel încât o "imagine" încărcată poate fi executată ca script.nosniff (singura valoare valabilă)
Content-Security-Policy: frame-ancestors ... sau X-Frame-OptionsClickjacking: un alt site încarcă invizibil pagina dumneavoastră într-un cadru (frame) și îi lasă pe vizitatori să dea clic, fără să-și dea seama, pe butoanele dumneavoastră.frame-ancestors 'self' sau 'none'; antetul mai vechi X-Frame-Options: SAMEORIGIN sau DENY
Referrer-PolicyLa un clic către un alt site, browserul trimite și adresa paginii anterioare. Aceasta poate conține informații sensibile, precum un termen de căutare sau un număr de comandă.no-referrer sau same-origin (strict), strict-origin-when-cross-origin (uzual, internet.nl afișează aici un avertisment)
Content-Security-Policy (complet)Limitează locurile de unde pot fi încărcate scripturi, stiluri și imagini. Face mult mai dificile scripturile rău intenționate inserate (XSS).Personalizat pentru fiecare site. Evitați unsafe-inline, unsafe-eval și wildcard-urile.

O Content-Security-Policy completă este cea mai puternică măsură, dar și cea mai dificilă: o regulă prea strictă vă poate strica statisticile, butonul de plată sau fereastra de chat. Cu varianta Content-Security-Policy-Report-Only puteți măsura mai întâi ce ar fi blocat, fără a strica nimic. Lăsați acest aspect în seama dezvoltatorului dumneavoastră de site-uri web sau începeți doar cu frame-ancestors.

Verificarea antetelor dumneavoastră proprii

Deschideți site-ul dumneavoastră într-un browser, apăsați F12 (sau alegeți "Inspectare"), mergeți la fila Rețea, reîncărcați pagina și dați clic pe prima cerere. Sub "Antete de răspuns" (Response Headers) vedeți tot ce trimite serverul. Se poate și din linia de comandă:

curl -sI https://example.com/

Site-ul propriu-zis: CMS, pluginuri și teme

Cele mai bune antete nu ajută dacă software-ul din spatele site-ului dumneavoastră este vulnerabil. Majoritatea site-urilor unor companii mici care sunt sparte nu au fost compromise prin serverul web, ci printr-un plugin învechit, o temă neactualizată de ani de zile sau o parolă slabă de administrator.

  • Activați actualizările automate pentru CMS-ul dumneavoastră (de exemplu WordPress, Joomla sau alt sistem) și pentru pluginurile unde este posibil.
  • Eliminați pluginurile și temele pe care nu le folosiți; dezactivarea nu este suficientă, fișierele rămân pe server.
  • Folosiți pentru autentificarea de administrator o parolă puternică, unică, și autentificare în doi pași (modulul 2), și limitați numărul de încercări de autentificare.
  • Păstrați versiunea PHP (sau a altui limbaj) a pachetului dumneavoastră la o versiune care încă primește actualizări (lecția 5.1).

În practică: așa arată

În DirectAdmin, panoul folosit de WebOké, activați mai întâi la domeniul dumneavoastră Secure SSL și apoi Force SSL with https redirect. În același loc se află un comutator pentru HSTS; activați-l abia după ce certificatul funcționează pentru toate numele. La alți furnizori funcționează similar, sau îl configurați din setările CMS-ului dumneavoastră.

Dacă site-ul dumneavoastră rulează pe Apache sau LiteSpeed, puteți seta antetele și în .htaccess:

<IfModule mod_headers.c>
  Header always set Strict-Transport-Security "max-age=31536000"
  Header always set X-Content-Type-Options "nosniff"
  Header always set Content-Security-Policy "frame-ancestors 'self'"
  Header always set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>

Adăugați includeSubDomains doar după ce sunteți sigur că fiecare subdomeniu are https. Verificați după fiecare modificare cu testul de site web de la internet.nl sau cu instrumentele pentru dezvoltatori ale browserului dumneavoastră.

Rezumat

  • Un lacăt înseamnă: criptat și numele corect. Nu înseamnă: de încredere.
  • Redirecționați întotdeauna http către https, mai întâi pe același nume, și dintr-un singur loc.
  • HSTS face ca browserul să rețină că site-ul dumneavoastră funcționează doar prin https; internet.nl consideră un max-age de cel puțin un an (31536000) ca fiind corect. Activați-l abia după ce https funcționează peste tot și construiți-l treptat.
  • X-Content-Type-Options: nosniff, frame-ancestors (sau X-Frame-Options) și Referrer-Policy sunt simple; o Content-Security-Policy completă este personalizată.
  • Actualizările CMS-ului, pluginurilor și temelor dumneavoastră sunt cel puțin la fel de importante ca antetele.

Test (quiz)

1. Ce previne exact HSTS?



2. Activați Strict-Transport-Security: max-age=31536000; includeSubDomains. O săptămână mai târziu expiră certificatul de pe shop.example.com. Ce observă vizitatorii obișnuiți?



3. Ce max-age consideră internet.nl ca fiind minimul suficient pentru HSTS?



4. Împotriva a ce protejează Content-Security-Policy: frame-ancestors 'self'?



5. Vedeți un lacăt la mijnbank-veilig.example în bara de adrese. Ce știți cu certitudine din acest lucru?



Exercițiu

Exercițiul A4.2: Verificarea protecției domeniului dumneavoastră. Completați numele de domeniu al site-ului dumneavoastră web. Dacă nu aveți unul, folosiți internet.nl. Programul deschide http:// și https:// ale domeniului dumneavoastră și verifică certificatul, redirecționarea către https, HSTS și antetele de securitate. Primiți pentru fiecare punct culoarea verde, portocaliu sau roșu, cu explicație.

Exercițiul A4.2: Verificarea https, HSTS și a antetelor site-ului dumneavoastră

Completați numele de domeniu al site-ului dumneavoastră (dacă nu aveți unul, folosiți internet.nl). Programul deschide http:// și https:// ale domeniului dumneavoastră și verifică certificatul, redirecționarea către https, HSTS și antetele de securitate. Completați apoi max-age-ul HSTS.



Ceea ce completați și ceea ce găsim nu se salvează. Browserul dumneavoastră reține răspunsurile și dacă ați rezolvat exercițiul. Dacă sunteți autentificat, păstrăm în Cursurile mele doar faptul că exercițiul a fost (aproape) corect; și de acolo îl puteți șterge.

Exercițiul D4.2: Actualizarea și curățarea site-ului dumneavoastră web. Autentificați-vă în administrarea site-ului dumneavoastră web, verificați versiunea CMS-ului, a pluginurilor și a temelor dumneavoastră, eliminați ce nu folosiți și activați actualizările automate acolo unde este posibil. Bifați lista de verificare și răspundeți la întrebarea de reflecție.

Exercițiul D4.2: Actualizarea și curățarea site-ului dumneavoastră web

Procedați astfel: (1) Conectați-vă în zona de administrare a site-ului dumneavoastră (sau rugați dezvoltatorul site-ului să facă acest lucru împreună cu dumneavoastră). (2) Notați versiunea CMS-ului și verificați dacă sunt disponibile actualizări. (3) Realizați o copie de siguranță (lecția 6.1), instalați actualizările pentru CMS, plugin-uri și teme. (4) Eliminați plugin-urile și temele pe care nu le folosiți. (5) Activați actualizările automate acolo unde este posibil. (6) Verificați ce conturi de administrator există și eliminați conturile persoanelor care nu mai lucrează acolo. (7) Activați autentificarea în doi pași pentru fiecare cont de administrator.




Bifele și notițele dumneavoastră rămân doar în acest browser; nu le trimitem nicăieri. Dacă sunteți autentificat, păstrăm în Cursurile mele doar faptul că ați finalizat exercițiul.

Lecturi suplimentare

Pașii din articolele WebOké sunt valabili pentru mediul WebOké; la alți furnizori funcționează în mod similar.

Un moment…

Configurați domeniile

Stabiliți pentru fiecare domeniu nameserverele, legătura cu hostingul și cine devine titularul.

Se încarcă domeniile…