Salut, numele meu este Gabriel Vasile si am sa va vorbesc astazi despre WordPress si mai ales despre securitate. Creez site-uri de prezentare si portaluri pe WordPress de cativa ani pentru Creative Web Design si pot spune ca securitatea unui website este extrem de importanta, mai ales cand lucrezi pe o platforma open source de renume.
Un studiu recent a dovedit ca 73% dintre cele mai populare 40.000 de website-uri care folosesc WordPress sunt vulnerabile unui atac informatic. De cele mai multe ori aceasta nu se intampla datorita platformei WordPress ci mai degraba din cauza plugin-urilor scrise prost, cod vulnerabil in tema sau nesecurizarea altor elemente importante. Am sa incerc sa enumar mai jos metode destul de usoare dar eficiente de a combate aceste probleme.
Sfaturi de securitate
In primul rand WordPress-ul si plugin-urile sale trebuiesc tinute la ultima lor versiune. In permanenta dezvoltatorii lor vin cu update-uri de securitate. De asemenea, trebuie sa fii foarte atent cand alegi un plugin sau o tema pentru instalare. Foarte multe dintre temele gratuite ce nu sunt publicate pe site-ul oficial au cod malitios.
Asigura-te ca ai un user si o parola puternica si diversificata, nu pastra in niciun caz userul admin sau o parola simpla ca „admin”, „1234”, etc. O parola puternica nu doar contine atat litere mici, mari, cifre si caractere speciale, ci este si lunga. Daca site-ul tau are mai multi useri, este de preferat sa te asiguri ca fiecare user are o parola puternica. Poti chiar activa autentificarea in 2 pasi cum este si la Google+. Adica iti introduci userul si parola, dupa care un cod ti se trimite pe telefon pe care va trebui sa il introduci, abia apoi reusind logarea. Cu alte cuvinte, nimeni care nu are acces la telefonul tau, nu se va putea autentifica folosind userul tau. Daca ti se pare o corvoada prea mare, macar seteaza sa ai cod captcha la autentificarea in adminul WordPress.
Firma de hosting pe care o alegi este foarte importanta deoarece ei pot face anumite setari de securitate serverului pe care este tinut site-ul tau. Pot spune ca am avut probleme din punctul acesta de vedere cu o anumita firma de hosting neserioasa si pe care prea putin o interesa partea de securitate asa ca am fost nevoit sa ma mut impreuna cu clientii mei la o alta firma care este mult mai atenta la aceste detalii.
Prefixul tabelelor din baza de date (wp_) va trebui schimbat, iar daca site-ul tau este doar un site de prezentare, nu un blog sau portal pe care accepti comentarii, va trebui sa blochezi din start posibilitatea de comentarii (chiar daca nu apar pe site nicaieri, asigura-te ca ai comentariile inchise). Daca ai nevoie de comentarii, va trebui sa iti instalezi pluginul anti-spam Akismet sau unul similar.
Un alt lucru extrem de important este permisiunea fisierlor. Toate folderele trebuie verificate sa nu aibe acces mai mare de 755, fisierele trebuie sa nu aibe acces mai mare de 644, iar fisierele critice ca .htacces si wp-config.php sa nu aibe acces mai mare de 444. Fisierul din root numit readme.html va trebui sters sau macar blocat accesul catre el din .htaccess, deoarece acesta ofera informatii pretioase hackerilor ca de exemplu versiunea de WordPress pe care site-ul o ruleaza.
Un alt lucru pe care hackerii il pot folosi pentru a obtine informatii pretioase este panoul de login. Cand se esueaza autentificarea intr-un admin wordpress, acesta arata motivul acestei esuari, astfel incat oricine isi poate da seama daca macar userul incercat este corect. De asemenea, WordPress afiseaza in mod normal in codul html versiunea de WordPress folosita. Inca un lucru care trebuie facut este dezactivarea posibilitatii de a modifica fisierele WordPress din panoul de administrare. Pentru a remedia aceste lucruri, puteti introduce codul urmator in fisierul functions.php:
function remove_wp_version() {
return ”;
}
add_filter(‘the_generator’, ‘remove_wp_version’);
define(‘DISALLOW_FILE_EDIT’, true);
function failed_login() {
return ‘The login information you have entered is incorrect.’;
}
add_filter(‘login_errors’, ‘failed_login’);
add_filter(‘login_errors’,create_function(‘$a’, „return null;”));
function wpbeginner_remove_version() {
return ”;
}
add_filter(‘the_generator’, ‘wpbeginner_remove_version’);
Va trebui sa va asigurati ca WP_DEBUG din wp-config.php este false define(‘WP_DEBUG’, false);. Multi dezvoltatori il seteaza true pe perioada developmentului si uita sa il seteze false la lansarea site-ului.
De asemenea, cheile de securitate din fisierul wp-config.php vor trebui schimbate. Puteti genera automat chei noi de la adresa Codex Secret Keys unde la fiecare refresh de pagina se genereaza noi chei automat.
Un alt lucru important este sa blocati posibilitatea de browsing al folderelor. Exemplu: in www.siteultau.ro/unfolder/ ai stocate anumite lucruri importante sau pur si simplu anumite fisiere. Nu e recomandat sa pot accesa acel link si sa pot vedea o lista cu fisierele existente in folderul respectiv. Pentru a remedia acest lucru, vei avea nevoie de codul urmator in fisierul .htaccess:
Options -Indexes
Plugin-uri WordPress
Pe langa aceste lucruri, mai sunt anumite setari importante pe care le poti face usor folosind pluginurile pe care am sa ti le enumar mai jos. Printre aceste setari se enumera: schimbarea id-ului primului user din baza de date, blocarea ip-urilor daca s-a incercat de mai multe ori logarea intr-un timp foarte scurt de timp, blocarea anumitor tari, scanare periodica a fisierelor (asemanator unui antivirus), crearea de backup automata a bazei de date in fiecare zi sau saptamana, schimbarea adresei de login din /wp-admin in orice altceva, blocarea anumitor agenti si ip-uri cunoscute in domeniul hackingului, schimbarea numelui folderului wp-content in orice altceva, blocarea accesului in admin intre anumite ore si multe altele.
Acestea sunt pluginurile pe care le folosesc in permanenta: – BBQ: Block Bad Queries, Better WP Security, Wordfence Security, SI CAPTCHA Anti-Spam.
Pentru mai multe detalii, te invit sa citesti si ghidul in engleza al wordpressului in legatura cu securitatea. Acesta se poate gasi pe codex.
Sanitizarea datelor este de asemenea extrem de importanta. Date in care nu poti avea incredere vin din multe surse (formulare, baza de date, etc.) si trebuiesc validate si sanitizate atat la intrare, cat si la iesire. Pentru asta, WordPress are cateva functii speciale ca wp_kses care distruge scripturile malitioase, esc_html care codifica sau „escape-uieste” tagurile de html. Despre validarea datelor se poate citi pe codex mai detaliat.
Desi unele dintre metodele de mai sus sunt foarte usor de implementat, ele reprezinta elemente importante in securitatea unui website ce foloseste WordPress. Va astept sa imi spuneti si voi ce alte metode folositi si daca ati folosit unele dintre metodele de mai sus.
La mai multe articole de genul asta in limba romana 🙂
As adauga ca userul cu rol de administrator, pe langa a nu fi „admin” ar trebui sa aiba un alt ID decat 1. La crearea unei instalatii noi de WordPress primul utilizator va avea ID 1. Hackerii stiu asta si daca ii putem incurca nitel prin crearea unui al doile cont si stergerea primului, nu strica.
Totodata este bine de stiut ca, uneori, BulletProof Security si WordFence pot zapaci un site (am intalnit situatii extreme in care utilizatori mai putin familiarizati cu cele doua au avut nevoie nu doar de un restore complet dar si de editarea bazei de date pentru a restabili accesul la site in front si back-end).
Prin urmare, ar fi bine daca, inainte de a activa si configura oricare dintre cele doua pluginuri, se face un backup complet (fisiere plus baza de date, si neaparat pentru fisierul .htaccess). O solutie de backup foarte buna este Backup Buddy produs de iThemes, dar, inainte de a-l cumpara verificati daca indepliniti cerintele minime.
Vorbind de backup, acesta nu ar trebui sa fie optional. Din cel putin 2 motive:
1) in caz de hack sau instalarea unui plugin dubios, e bine sa existe o versiune anterioara fara probleme, si
2) Incepand cu versiunea 3.7, WordPress va aplica update-uri de securitate automat pe site-urile care permit asta. In principiu, asta e un lucru bun, dar pe un site care are in spate cativa ani de functionare, pot exista plugin-uri depasite, cod incompatibil, si ar fi bine sa nu ne bazam 100% pe testele WordPress de compatibilitate. S-ar putea sa descoperim ca facem parte din acel procent minimal de site-uri cu white screen of death dupa un update automat.
Un plugin pentru a preveni atacuri de tip brute force este Limit Login Attempts (compatibil pana la WP 3.3.2 dar functioneaza pe 3.7.1) – va bloca utilizatorii si IP-urile care introduc username si parola gresite de mai multe ori si va notifica administratorul.
Ca o solutie non-WordPress de securitate si pentru optimizare exista CloudFlare. Unele servicii de hosting au integrat optiunea pentru CloudFlare in cPanel.
 
Buna Anca si mersi pentru comentariu. Eu am probleme cu plug-in-urile fara sa fi combinat mai multe de securitate 🙂
Si intr-adevar cea mai buna solutie o reprezinta un back-up mereu actualizat.
 
🙂 Plugin-urile ca femeile – can’t live with them, can’t live without them, zic! Eu am descoperit ca o investitie in plus la hosting face toti banii. In loc sa ma zapacesc singurica cu toate nebuniile pentru securitate, am migrat catre companii de hosting dedicate WordPress. Am avut WP Engine, acum m-am mutat la ZippyKid. Imi fac backup-uri, dar responsabilitatea pentru securitate, dincolo de username si parola, apartine companiei de hosting. 25 de dolari pe luna/site poate sa para mult, dar nu am grija securitatii, nu trebuie sa pierd timp cu optimizarea pageload-ului si, cu siguranta, nu am nevoie de atat de multe plugin-uri. Eu as recomanda sincer tuturor utilizatorilor de WP astfel de servicii de hosting. Cand pui la socoteala plugin-uri premium de securitate, CDN, hosting, backup-uri platite, etc, am impresia ca ajungi tot pe-acolo. Nu stiu care sunt preturile la hosting in Romania, dar auzisem de niste preturi usor piperate la un moment dat.
 
Ma bucur ca ti-a placut articolul Anca. Multe dintre lucrurile pe care le-ai specificat sunt intr-adevar foarte importante. Unul dintre pluginurile pe care le mentionam, si anume Better WP Security face acele lucruri. Modifica id-ul utilizatorului, limiteaza login attempts, Wordfance ofera backup-uri, previne brute force attempts etc. Intr-adevar este recomandat sa ai backup inainte si sa stii ce setezi, altfel ramai pe din-afara adminului si daca nu ai acces la fisiere si baza de date, e cam nasol 🙂
 
Foarte bun articolul. La mai multe. Ne scuteste de sapat prin site-uri mai mult sau mai putin sigure.
 
Felicitari domnului Gabriel Vasile pentru acest guest post in care ne-a explicat despre securitatea platformei wordpress, si de sfaturile utile pe care ni le-a oferit.
 
Salutare Gabriel, foarte interesant articolul tau, insa recunosc l-am citit printr-e randuri deoarece nu sunt familiarizat cu toti termenii tehnici pe care i-ai folosit in el.
Am si eu un site, construit tot pe o plaforma WordPress, destul de micut, ce e drept, ca si continut si ca nr. de pagini.
Speram sa ne detalitati intr-un articol similar posibile variante si de optimizare valabile pentru platformele wordpress.
Toate cele bune!
 
Abia ce am intrat in posesia unui site WP. Multumesc pt sfaturi, e un aspect la care chiar nu m-am gandit.