Siguranța instalației tale WordPress depinde în totalitate de alegerile tale. Descoperă cinci aspecte esențiale pentru o securitate robustă.
Preocupările legate de securitatea WordPress nu sunt o noutate.
Dacă ești în căutarea unui CMS și consulți furnizori alternativi, vei auzi frecvent despre securitate ca fiind un punct slab al WordPress. Dar oare ar trebui să renunțăm cu toții la WordPress în favoarea generatoarelor de site-uri statice sau a unui CMS headless?
Nu, deoarece, ca orice alt aspect al vieții, realitatea este mult mai complexă.
WordPress este cu adevărat nesigur?
Să analizăm câteva site-uri web importante construite pe platforma WordPress:
- TechCrunch
- New Yorker
- BBC America
- Bloomberg
- MTV News
- Blogul PlayStation
Ce îi motivează pe acești giganți, cu resurse financiare și umane impresionante, să rămână fideli WordPress? Dacă te gândești la un cod învechit, mai gândește-te: pentru ei, securitatea datelor și imaginea publică sunt priorități absolute, mult mai importante decât o simplă migrație, care, conform estimărilor, ar costa sub 200.000 de dolari.
Cu siguranță, echipele lor de ingineri sunt competente și nu văd în WordPress probleme de securitate fundamentale insurmontabile.
Eu însumi am avut șansa de a gestiona o instalare WordPress care atrage lunar între 3,5 și 4 milioane de vizitatori. Câte breșe de securitate au avut loc în ultimii opt ani? Niciuna!
Așadar… WordPress este sigur?
Îmi cer scuze dacă sună provocator, dar răspunsul este:
Complexitatea este cheia, ca în multe aspecte ale vieții. Pentru a înțelege cu adevărat, trebuie să acceptăm că WordPress (sau orice CMS predefinit) nu este un produs „gata de utilizare”.
Este un sistem complex cu numeroase dependențe:
- PHP, limbajul pe care se bazează
- Un server accesibil public care găzduiește instalația
- Serverul web care gestionează vizitatorii (Apache, Nginx etc.)
- Baza de date (MySQL/MariaDB)
- Teme (seturi de fișiere PHP, CS și JS)
- Pluginuri (seturi de fișiere PHP, CS și JS)
- Și multe altele, în funcție de complexitatea instalației tale
O încălcare a securității la oricare dintre aceste niveluri va fi etichetată ca o încălcare WordPress.
Dacă parola de administrator a serverului era „admin123” și a fost compromisă, este o problemă de securitate WordPress?
Dacă versiunea PHP avea o vulnerabilitate sau un plugin nou instalat avea o problemă de securitate evidentă? Toate acestea sunt vulnerabilități ale ecosistemului WordPress. Pe scurt, o defecțiune într-un subsistem este percepută ca o problemă de securitate WordPress.
Totuși, nu trebuie să înțelegi de aici că PHP, MySQL și Apache sunt în mod inerent nesigure. Orice software are vulnerabilități, iar numărul acestora este mare în cazul software-ului open-source (datorită vizibilității codului).

Cineva a zis „sigur”? 😛
Din acest exercițiu, învățăm că:
Nimic nu este sigur sau nesigur prin definiție. Siguranța sistemului este dată de verigile sale, iar „lanțul” este puternic cât cea mai slabă verigă. Istoric, reputația „nesigură” a WordPress a fost cauzată de versiunile PHP învechite, hosting partajat și adăugarea de pluginuri/teme din surse necredibile.
În același timp, anumite neglijențe comune fac instalarea WordPress vulnerabilă în fața celor care știu cum să le exploateze. Tocmai despre aceste aspecte vom vorbi în acest articol. Așadar, fără alte introduceri, să începem.
Cele mai frecvente lacune WordPress exploatate de hackeri
Prefixul tabelelor WordPress
Instalarea WordPress în 5 minute este o realizare fantastică, dar, ca orice asistent de instalare, ne face leneși, păstrând setările implicite.

Prefixul implicit pentru tabelele WordPress este `wp_`, creând nume de tabel ușor de ghicit:
- wp_users
- wp_options
- wp_posts
Acum, ia în considerare un atac de tip SQL Injection, în care interogări malițioase sunt introduse și executate în baza de date WordPress. (Atenție, acesta nu este un atac exclusiv WordPress/PHP).
Deși WordPress are mecanisme de protecție împotriva acestor atacuri, nu există garanția că nu se vor întâmpla.
Deci, dacă, dintr-un motiv sau altul, un atacator reușește să execute o interogare de tipul `DROP TABLE wp_users; DROP TABLE wp_posts;`, toate conturile, profilurile și postările tale vor fi șterse, fără posibilitatea de recuperare (cu excepția cazului în care ai o copie de rezervă, dar și atunci vei pierde datele de la ultima salvare).
O simplă modificare a prefixului în timpul instalării reduce semnificativ riscul (fără a necesita efort suplimentar).
Un prefix aleatoriu, cum ar fi `sdg21g34_`, este recomandat, deoarece este complex și greu de ghicit (cu cât prefixul este mai lung, cu atât mai bine). Cel mai bun aspect este că prefixul nu trebuie memorat; WordPress îl va reține și nu va mai trebui să-ți faci griji în privința lui (așa cum nu-ți faci griji pentru prefixul implicit `wp_`).
Adresa URL implicită de conectare
Cum îți dai seama că un site web funcționează pe WordPress? Un indiciu clar este accesarea paginii de conectare WordPress prin adăugarea „/wp-login.php” la adresa site-ului.
De exemplu, să luăm site-ul meu (http://ankushthakur.com). Funcționează pe WordPress? Încearcă să adaugi adresa de conectare. Dacă ești prea leneș, iată ce se întâmplă:

¯\_(ツ)_/¯
Este WordPress, nu-i așa?
Aceste informații sunt utile pentru un atacator, care va începe să folosească trucuri din arsenalul său. Săracul de mine!
Soluția este să schimbi adresa URL implicită de conectare și să o dezvălui doar persoanelor de încredere.
De exemplu, și acest site funcționează pe WordPress, dar dacă accesezi http://tipstrick.ro.com/wp-login.php, vei întâmpina o dezamăgire profundă. Adresa de conectare este ascunsă și cunoscută doar de administratori.
Modificarea adresei URL de conectare nu este complicată. Instalează acest plugin.
Felicitări, ai adăugat un nivel de securitate suplimentar împotriva atacurilor de tip forță brută.
Versiunea PHP și serverul web
Am menționat deja că orice software conține erori care așteaptă să fie exploatate.
Același lucru se aplică și limbajului PHP.
Chiar dacă folosești cea mai recentă versiune PHP, nu poți fi sigur de vulnerabilitățile care ar putea apărea. Soluția este ascunderea unui anumit antet trimis de serverul tău web (nu știi ce sunt anteturile? Citește acest articol!) când un browser se conectează la acesta: `x-powered-by`.
Iată cum arată antetul dacă verifici instrumentele de dezvoltare ale browserului:

După cum observăm, site-ul ne dezvăluie că rulează pe Apache 2.4 și folosește PHP versiunea 5.4.16.
Aceste informații ajută un atacator să-și restrângă opțiunile de atac.
Aceste anteturi (și altele similare) trebuie ascunse.
Acest lucru se poate face destul de rapid; din păcate, este nevoie de cunoștințe tehnice avansate, deoarece trebuie să modifici fișierele de configurare ale sistemului. Sfatul meu este să ceri furnizorului de găzduire să facă acest lucru; dacă nu, consultă un specialist. Totul depinde de posibilitățile oferite de găzduirea site-ului tău.
Dacă nu funcționează, poate este momentul să schimbi furnizorul de găzduire sau să treci la un VPS și să angajezi un specialist în securitate și administrare.
Merită? Decizia îți aparține. 🙂
A, și dacă vrei să înțelegi mai bine anteturile de securitate, iată soluția ta!
Numărul de încercări de conectare
Una dintre cele mai vechi metode ale hackerilor este atacul de tip dicționar.
Ideea este să încerci un număr enorm de combinații posibile pentru parolă, până când una funcționează. Deoarece computerele sunt foarte rapide, această metodă simplistă poate da rezultate.
O apărare comună (și foarte eficientă) este introducerea unei întârzieri înainte de afișarea mesajului de eroare. Asta face ca un atac automat să dureze prea mult. De aceea, computerul sau aplicația ta preferată întârzie înainte de a afișa „Parolă greșită!”.
Ideea este să limitezi numărul de încercări de conectare pe site-ul tău WordPress.
După un anumit număr de încercări (de exemplu, cinci), contul ar trebui blocat și deblocat doar prin e-mailul titularului.

Din fericire, este foarte simplu cu ajutorul acestui plugin.
HTTP vs. HTTPS
Certificatul SSL pentru care a insistat furnizorul tău este mai important decât crezi.
Nu este doar un simbol de încredere care afișează un lacăt verde în browser; instalarea unui certificat SSL și forțarea tuturor adreselor URL să funcționeze prin „https” transformă site-ul tău dintr-o carte deschisă într-un manuscris criptat.

Dacă nu înțelegi de ce, te rog citește despre atacurile de tip „omul din mijloc”.
O altă metodă de interceptare a traficului este sniff-ul de pachete, o formă pasivă de colectare a datelor, care nici măcar nu necesită poziționarea la mijloc.
Pentru site-urile care rulează prin „HTTP” simplu, interceptarea traficului de rețea va dezvălui parole și numere de card de credit în text simplu.
Sursa: comparitech.com
Înspăimântător, nu?
Dar, odată ce instalezi un certificat SSL și convertești toate adresele URL în „https”, aceste informații devin un text criptat pe care doar serverul îl poate decripta. Așadar, nu te stresa pentru câțiva dolari în plus pe an. 🙂
Concluzie
Vei implementa aceste cinci măsuri pentru a-ți securiza site-ul?
Nicio metodă nu oferă siguranță 100%, dar poți elimina majoritatea problemelor cu un efort rezonabil. De asemenea, poți utiliza un sistem cloud WAF (Web Application Firewall) precum Sucuri pentru a-ți proteja site-ul în mod holistic.