Unele dintre cele mai eficiente protecții pe care le poate avea un site nu costă nimic și durează o după-amiază. Sunt setări, nu software: câteva anteturi de răspuns, un certificat configurat corect, câteva reguli despre ce va spune și ce nu va spune serverul despre sine. Browserele aplică majoritatea în numele vizitatorului, ceea ce înseamnă că protecția călătorește cu fiecare afișare de pagină fără să ruleze niciun cod la tine. Articolul e despre aceste elemente de bază, ce face fiecare în termeni simpli și de ce le tratăm ca parte a fiecărei lansări, nu ca un extra opțional.
TLS peste tot, reînnoit automat
Criptarea în tranzit e fundația. Fiecare pagină, fiecare resursă și fiecare trimitere de formular circulă prin HTTPS, astfel că nimeni dintre vizitator și serverul tău nu poate citi sau modifica nimic. Partea interesantă nu e activarea, pe care o face azi orice furnizor, ci menținerea ei fără ca cineva să se gândească la asta. Certificatele expiră. Un site al cărui certificat a expirat arată fiecărui vizitator un avertisment pe tot ecranul, și se întâmplă în weekend mai des decât ar sugera întâmplarea.
Emitem certificate automat la edge, le reînnoim cu săptămâni înainte să expire și monitorizăm expirarea ca pe unul dintre semnalele care ajung la o persoană. Versiunea HTTP simplă a site-ului face un singur lucru: redirecționează spre HTTPS. Și le spunem browserelor să țină minte această preferință printr-un antet numit Strict-Transport-Security, astfel că și un link scris greșit ajunge direct la versiunea criptată.
Anteturi de securitate: instrucțiuni pentru browser
Când serverul tău trimite o pagină, poate include anteturi care îi spun browserului cum s-o trateze. Câteva dintre ele închid categorii întregi de atacuri fără niciun cost pentru experiența vizitatorului.
- Content-Security-Policy enumeră de unde au voie să se încarce scripturile, stilurile, imaginile și cadrele. Un script injectat dintr-o origine neașteptată pur și simplu nu rulează. E cel mai puternic antet și cel care cere cea mai multă grijă la scris, pentru că trebuie să descrie fiecare sursă legitimă pe care o folosește site-ul.
- X-Frame-Options, sau echivalentul lui modern din politica de mai sus, împiedică alte site-uri să-l încorporeze pe al tău într-un cadru ascuns și să-i păcălească pe vizitatori să dea clic pe lucruri.
- X-Content-Type-Options oprește browserele să ghicească ce fel de fișier au primit, ceea ce elimină o clasă de trucuri cu fișiere care se prefac a fi altceva.
- Referrer-Policy controlează cât din URL-ul tău e transmis când un vizitator dă clic pe un link către alt site. Valorile implicite rezonabile țin private căile interne și parametrii.
- Permissions-Policy declară ce funcții de browser au voie să folosească paginile tale, cum ar fi camera, microfonul sau locația. Refuzul funcțiilor de care n-ai nevoie înseamnă că nici un script injectat nu le poate folosi.
Instrumente gratuite notează un site pe aceste anteturi în câteva secunde. Le verificăm la lansare și după fiecare schimbare a configurației de edge, iar configurația de server pe care o generăm le livrează implicit.
Cookie-uri care se comportă
Cookie-urile de sesiune sunt felul în care un editor autentificat rămâne autentificat, iar atributele lor decid cum pot fi folosite greșit. Atributul Secure le ține departe de conexiunile necriptate. HttpOnly le ține departe de scripturi. SameSite restrânge situațiile în care alte site-uri pot face un browser să le trimită. Drupal setează valori implicite rezonabile, iar noi verificăm că nimic din stratul de găzduire sau dintr-un modul contribuit nu le-a slăbit.
Să spui mai puțin despre tine
Un server care își anunță versiunile exacte de software în fiecare răspuns dă informații gratis. La fel un site care servește oricui cere jurnalul de modificări, fișierul readme, scriptul de instalare sau fișierul de versiune. Niciuna dintre acestea nu e o vulnerabilitate în sine. Sunt comodități pentru cineva care decide unde să caute în continuare. Configurația noastră de server elimină bannerele de versiune și întoarce un simplu „nu există” pentru fișierele de documentație și de instalare, pe fiecare site pe care îl găzduim, fără ca cineva să trebuiască să-și amintească.
Pagini de eroare care tac
O setare de dezvoltare care afișează pe ecran toate detaliile unei erori e neprețuită pe calculatorul unui dezvoltator și o problemă pe un site live, unde un singur URL greșit poate dezvălui căi de fișiere, structura bazei de date și versiuni de biblioteci. Site-urile de producție înregistrează erorile în privat și le arată vizitatorilor o pagină prietenoasă. E o linie de configurație și e unul dintre primele lucruri pe care le verificăm pe orice site care ajunge la noi.
Pagini de login cu limite
Drupal limitează implicit încercările repetate de autentificare, atât per cont, cât și per adresă, și înregistrează fiecare eșec. Păstrăm acele limite, urmărim jurnalele și adăugăm autentificare în doi pași pentru fiecare cont care poate schimba conținut sau configurație. Pagina de login e ușa din față, iar scopul e să fie plictisitoare pentru oricine n-are cheie.
De ce elementele de bază țin de platformă
Fiecare punct de mai sus e simplu, și exact de aceea sunt atât de des ratate: nu aparțin nimănui în mod special, așa că se fac o dată și apoi se uită, sau nu se fac deloc. Răspunsul nostru e să le facem proprietăți ale platformei, nu sarcini pentru o persoană. Stratul de găzduire administrată generează configurația de server dintr-un șablon care include deja anteturile, redirecționările, regulile pentru fișiere și tăcerea despre versiuni. Un site nou le primește din prima zi. O schimbare în șablon ajunge la fiecare site la următoarea livrare. Nimeni nu trebuie să-și amintească, ceea ce e singurul mod sigur de a te asigura că se întâmplă.
Dacă vrei să știi cum stă site-ul tău la aceste elemente de bază, verificatoarele gratuite de anteturi sunt o primă privire bună, iar citim cu plăcere rezultatul împreună cu tine și reparăm ce iese la iveală. De obicei e o după-amiază bine folosită.
