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.

securitate wordpress

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.