Securizarea suplimentară a WordPress: permisiuni, wp-config și .htaccess
Actualizările, o parolă puternică și autentificarea în doi pași sunt baza unui site WordPress sigur. Securizarea suplimentară (hardening) vine în completarea acestora: configurați site-ul astfel încât o vulnerabilitate sau un cont preluat să poată produce mai puține daune. Aici aflați care sunt aceste setări și cum le aplicați pe pachetul dumneavoastră de găzduire.
Ce se întâmplă deja pe server
O parte este deja rezolvată pe serverele noastre. xmlrpc.php este blocat implicit (WordPress: accesul la xmlrpc.php nu funcționează), funcțiile PHP periculoase sunt dezactivate (Securitate PHP: funcții dezactivate), iar pe server rulează un firewall pentru traficul web și un scanner de malware. Consultați Web Application Firewall și Imunify360: scanați-vă site-ul pentru malware. Pașii de mai jos îi efectuați dumneavoastră, în propriul site.
Toate fișierele le editați în DirectAdmin cu File Manager. Fișierele care încep cu un punct, precum .htaccess, devin vizibile doar după ce afișați fișierele ascunse: consultați Afișarea și editarea fișierelor ascunse precum .htaccess. Faceți mai întâi o copie a fiecărui fișier și păstrați această copie în afara public_html.
1. Fără editarea codului din panoul de administrare
Deschideți wp-config.php din domains/example.com/public_html și adăugați această linie deasupra liniei cu „nu mai editați” (That's all, stop editing!):
define( 'DISALLOW_FILE_EDIT', true );
Editoarele pentru fișierele temelor și ale pluginurilor dispar astfel din panoul de administrare. Cine preia un cont de administrator nu mai poate introduce acolo, din câteva clicuri, cod malițios în tema dumneavoastră. Instalarea și actualizarea pluginurilor continuă să funcționeze normal. Setați în același fișier WP_DEBUG la false, astfel încât mesajele de eroare să nu apară niciodată pe ecranul vizitatorilor.
2. Fără PHP în folderul uploads
În wp-content/uploads își au locul imaginile și documentele, nu PHP. Un atacator care poate încărca un fișier printr-o vulnerabilitate încearcă tocmai acolo să plaseze un fișier PHP și să îl acceseze. Creați în wp-content/uploads un fișier .htaccess cu:
<Files *.php> Require all denied </Files>
Verificați apoi dacă site-ul, formularele și biblioteca media funcționează în continuare.
3. Fără listarea folderelor
Dacă într-un folder nu există index.php sau index.html, un server web poate afișa o listă cu toate fișierele. Adăugați la începutul fișierului .htaccess din public_html:
Options -Indexes
Pentru a testa, accesați un folder fără fișier index, de exemplu https://example.com/wp-content/uploads/. Ar trebui să vedeți o pagină de eroare (403 sau 404), nu o listă.
4. Permisiunile fișierelor și folderelor
| Ce | Permisiuni |
|---|---|
| Foldere | 755 |
| Fișiere | 644 |
wp-config.php | Mai stricte: 600 sau 640. Încercați 600 și verificați dacă site-ul funcționează în continuare. |
Nu folosiți niciodată 777: astfel oricine de pe server poate scrie în acel folder. Dacă un ghid spune că este necesar pentru ca încărcarea să funcționeze, cauza se află în altă parte. Pentru modificarea permisiunilor, consultați Permisiunile fișierelor și folderelor (chmod).
5. Fără resturi în folderul web
Tot ce se află în public_html poate fi accesat prin web. Prin urmare, faceți curățenie:
- copii ale
wp-config.php, precumwp-config.php.baksauwp-config.old. Acestea conțin parola bazei de date și sunt trimise ca text simplu; - backupuri precum
backup.zipsaudatabase.sql; - un folder
.gitlăsat de un dezvoltator; wp-content/debug.log;- fișiere de test precum
info.phpcuphpinfo().
Dacă doriți să faceți inaccesibil un singur fișier, consultați Blocarea fișierelor prin .htaccess.
6. Headere și autentificare
- Headerele de securitate îi spun browserului cum să trateze site-ul dumneavoastră. Consultați HSTS și headere de securitate pentru site-ul dumneavoastră.
- Pagina de autentificare o puteți restricționa la propria adresă IP cu Securizarea wp-login.php din WordPress.
- Autentificarea în doi pași pentru administratori: consultați Configurarea autentificării în doi pași pentru WordPress.
Ascunderea versiunii WordPress înseamnă doar ordine, nu securitate: programele de atac încearcă pur și simplu vulnerabilitatea. Doar actualizarea elimină vulnerabilitatea.
Și un plugin de securitate?
Un plugin de securitate combină adesea un firewall, un scanner și protecția autentificării. Un firewall dintr-un plugin funcționează abia după ce WordPress rulează deja; firewallul de pe server oprește cererile mai devreme. Un plugin este așadar o completare, mai ales pentru autentificarea în doi pași și limitarea încercărilor de autentificare. Folosiți cel mult unul: două pluginuri de securitate utilizate simultan intră adesea în conflict.
.htaccess sau wp-config.php poate bloca întregul site. Consultați Eroare 500 sau „eroare critică” pe site-ul dumneavoastră (inclusiv după o actualizare WordPress).Citiți mai departe
- Hardening WordPress (developer.wordpress.org, în limba engleză)
Doriți să aflați mai multe? Urmați cursul gratuit de WordPress, lecția 7.4 Securizarea suplimentară a site-ului: permisiuni, headere și pluginuri de securitate.
