Securitatea în WordPress


Indiferent că ai un blog nișat cu mulți vizitatori sau doar un blog personal pe care îl folosești pentru a ține legătura cu familia sau un cerc restrâns de prieteni trebuie să ai în vedere securitatea blogului tău. Din păcate, nu prea mulți bloggeri dau o importanță acestui aspect și nu puține au cazurile, vezi de exemplu ultima vulnerabilitate a WordPress, în care unii au avut de pierdut mai mult decât și-ar fi imaginat. Nu vreau să fiu genul panicard, dar securitatea unui blog nu este chiar de neglijat, mai ales dacă îți pasă de munca ta, de timpul și eforturile investite.

Deși nici un blog nu se poate mândri că este 100% securizat împotriva atacurilor, există o serie de măsuri pe care le poți implementa pentru a spori securitatea. Nu trebuie să fii expert pentru a le aplica, doar să urmezi niște instrucțiuni simple.

1. Fii sigur că ai întotdeauna instalată ultima versiune de WordPress. Același lucru este valabil și pentru temele și pluginurile tale.

Picture1 În general, problemele de securitate ale WordPress sunt rezolvate la scurt timp după ce au fost descoperite, așa că ar fi o idee bună să te abonezi la blogul WordPress.org sau, cel puțin, să nu ignori mesajele de upgrade din administrare. Instalarea de pluginuri/diverse hacks care să înlăture acele mesaje, oarecum deranjante pentru unii, este o practică căreia nu îi găsesc nicio justificare logică, indiferent de motivul care vă determină să acționați astfel.

Un alt aspect deloc de neglijat este actualizarea pluginurilor și, mai nou, a temele găzduite de cele două directoare de pe WordPress.org. Posibilitatea de actualizare automată pluginurilor, începând cu 2.3, și a temelor, implementată odată cu versiunea 2.7, a făcut această sarcină mai ușoară. WordPress 2.9, ce va fi lansat până la finele anului în curs, va avea implementat un API ce permite notificarea și upgrade-ul automat și pentru pluginurile ce, din felurite motive – nu sunt compatibile GPL, de exemplu, nu sunt incluse în directorul oficial.

De menționat că se recomandă ștergerea pluginurile și temele pe care nu le folosești pentru a înlătura orice posibilitate de exploatare a unor găuri de securitate și, de ce nu, pentru a economisi spațiul de găzduire.

Dacă din motive întemeiate ai nevoie să ascunzi versiunea WordPress pe care o folosești, deși aceasta nu te protejează în nici un fel de eventualele atacuri, modalitatea corectă este de a insera în fișierul functions.php al temei activate pe un nou rând

[PHP]remove_action(‘wp_head’,’wp_generator’);[/PHP]

2. Backup, backup, backup!

Picture2 Asigură-te că ai un backup recent și utilizabil al bazei de date. Pornind de la baza de date poți restaura mare parte a unui blog supus atacului. Pentru a realiza un backup poți folosi phpMyAdmin, ce nu durează mai mult de 5 minute, sau un plugin dedicat. Printre cele mai folosite pluginuri de acest gen sunt DBC Backup și WP-DB-Backup.

Fiecare dintre ele are avantajele și dezavantajele lui, dar personal îl prefer pe primul dintre ele deoarece backupul rezultat are o dimensiune mai mică – poți alege tipul de export și gradul de compresie, poți seta intervalul între backup-uri mult mai precis, șterge backup-urile mai vechi, inutile de altfel, de o anumită perioadă de timp setată de utilizatorși păstrează un log al acțiunilor întreprinse.

O posibilitate de backup la care poate mulți dintre voi poate nu se gândesc este abonarea la propriul feed folosind Google Reader.

3. Proveniența temelor/pluginurilor instalate

image

La momentul la care scriu acest articol poți găsi nu mai puțin 1052 de teme și peste 7000 de pluginuri în directoarele de pe WordPress.org. De asemenea există o serie de teme comerciale sub licență GPL, ceea ce înseamnă că oricine a plătit pentru ele le poate redistribui modificate sau nu, din care poți alege. La acestea se adaugă o mulțime de developeri, de fapt acei oameni care au făcut prin munca lor WordPress așa de populară și versatilă ca platformă, ce oferă gratuit sau contra cost pluginuri și teme.

Încearcă să downloadezi, pe cât posibil, temele/pluginurile din sursele originale; astfel vei ști că nu vei avea probleme și că ai de unde cere suport în cazul în care vei avea nevoie. Evită directoarele dubioase de teme ce au apărut precum ciupercile după ploaie. Nu folosi, de exemplu, teme ce au footer-ul codat sau cu link-uri către site-uri de speță îndoielnică.

Să nu cădem totuși în extrema cealaltă și să discretităm orice director de teme ce nu este afiliat WordPress.org. Dintre directoarele de teme WordPress gratuite de încredere merită să menționez WParchive.com și Web2Feel. Sper că nu mai trebuie să adaug că folosirea unor teme comerciale din surse warez este nu numai iresponsabilă, dar și o lipsă totală de respect pentru munca celor ce le-au creat.

4. Parola ta o găsesc în dicționar?

Picture3 Am citit la un moment undeva pe internet, nu mai găsesc în acest moment sursa, că aproximativ 1% din utilizatori au ca parolă exact cuvântul “parolă”. Nu foarte inteligent din partea lor, aș putea spune. Dacă parola ta folosește cuvinte sau combinații de cuvinte pe care le găsesc în orice dicționar, acea parolă nu este absolut deloc sigură. Nu folosi denumiri de animale, numele tău, pseudonimul tău, etc. și nu folosi aceeași parolă pentru contul de administrator al blogului și cel al panoului de control al contului de găzduire.

Încearcă să folosești combinații de litere și cifre, majuscule cu minuscule sau, dacă nu ai absolut deloc inspirație utilizează unul din generatoarele automate ce se găsesc pe net. Un astfel de generator, destul de complex, poți găsi aici. O parolă astfel meșteșugită combinată cu schimbare userului defaul admin în orice altfel aduce un plus de securitate blogului tău.

5. Tu știi cine are acces la zona de administrare a blogului tău?!

În majoritatea covârșitoare a cazurilor înregistrările pe un blog personal sau chiar colectiv ar trebui fi închise. De asemenea, este recomandat să limitezi accesul la folderul wp-admin prin diverse metode. Dacă ai un IP static cea mai simplă modalitate este să introduci în .htaccess codul următor modificând cu datele tale

[PHP]order deny,allow
deny from all
# acces pentru adresa IP de acasă
allow from 93.87.130.200
# acces pentru adresa IP de la muncă
allow from 82.76.130.226[/PHP]

loginDacă ai o adresă IP dinamică metoda aceasta nu îți va fi de prea mare ajutor. În schimb poți folosi plugin-ul Login Lockdown care blochează automat IP-urile de pe care s-au înregistrat tentative nereușite de autentificare. Numărul de autentificări eșuate în intervalul de timp se poate seta de utilizator, inițial sunt 3 autentificări eșuate în interval de 5 minute, iar intervalul inițial după care se deblochează un IP este de o oră.

Pe lângă acest plugin pentru a îmbunătăți securitatea vom ascunde erorile returnate de WordPress în urma încercărilor de autentificare. Ca un CMS prietenos cu utilizatorul ce se dorește a fi, WordPress îți spune dacă ai introdus greșit utilizatorul sau parola. Deschide fișierul functions.php al temei activate și introdu bucata următoare de cod

[PHP]add_filter(‘login_errors’,create_function(‘$a’, „return null;”));[/PHP]

6. Ce găsesc prin folderele tale?

Picture2

Pe un server configurat corect browsing-ul în folderele ce nu conțin un fișier index.html sau index.php nu este permis. De exemplu, dacă tastezi  într-un browser adresa folderului tău wp-content, adică www.blogultau.ro/wp-content/ ar trebui să primești eroare 404. Dacă, în schimb, ți se afișează conținutul acestui folder, această problema trebuie remediată.

Varianta aflată la îndemâna oricui este introducerea unui fișier index.php gol în wp-content și fiecare dintre folderele și subfolderele componente – uploads, themes, plugins, etc. O altă modalitate oarecum mai simplă și mult mai sigură este crearea în wp-content unui fișier .htaccess ce conține doar două linii de cod

[PHP]# Previne browsing-ul in directoare
Options –Indexes[/PHP]

Folderul wp-content conține o sumedenie de fișiere, de la imaginile sau alte fișiere media din uploads până la fișierele php ce alcătuiesc temele și pluginurile. În mod normal, WordPress nu accesează fișierele cu extensia php prin cereri HTTP, acest tip de cereri venind numai din partea navigatoarelor web. De aceea vom limita accesul doar la fișierele neaparat trebuincioase adăugând în plus în fișierul .htaccess următoarele linii

[PHP]Order Allow,Deny
Deny from all

Allow from all
[/PHP]

Completează, după model, cu extensiile celorlalte tipuri de fișiere pe care știi că le-ai încărcat în acest folder.

7. Permisiunile folderelor/fișierelor

Picture4

Odată ce ai instalat WordPress nu ar trebui să modifici permisiunile folderelor și fișierelor decât dacă este neaparat necesar. În mod normal, toate folderele ar trebui să aibă permisiuni cel mult 755, iar fișierele 644. Fișierele temei curente căreia îi aduci diverse modificări pot avea, doar pentru această perioadă de timp, permisiuni 666 ce îți permit să folosești editorul de fișiere inclus în WordPress ce are acum highlighting pentru PHP și HTML și, cu un singur click, îți permite să afli mai multe despre anumite funcții uzuale.

Există totuși și o excepție de la regulă. Dacă folosești un plugin de cache, acesta va utiliza pentru stocare fișierelor temporare un folder cache cu permisiuni 777 aflat, de obicei, în wp-content. Pentru a împiedica modificarea de către răuvoitori a acestor fișiere crează un .htaccess ce conține

[PHP]
order deny,allow
deny from all
[/PHP]

De menționat că, deși pare oarecum simplă la prima vedere, nu ar trebui să ne “jucăm” cu sintaxa fișierului .htaccess așa, la întâmplare. Pentru cei care doresc să aprofundeze acest subiect Stupid htaccess tricks vă va lămuri pe deplin, zic eu.

Astăzi am discutat despre cum să prevenim atacurile și cum să sporim securitatea blogului nostru. Dacă blogul tău a avut totuși de suferit în urma unui atac voi  încerca să explic într-un articol viitor cum anume să reparăm stricăciunile pricinuite, preferabil în proporție de 100%.


Apreciază articolul:

1 stea2 stea3 stea4 stea5 stea (5 evaluări, media: 5,00 din 5)
Loading...Loading...

13 comentarii

  1. Cristi spune:

    In wp-content am doua directoare cu permisiuni 777, un director folosit de pluginul de backup si directorul uploads. Ar trebui sa pun un fisier .htaccess in wp-content?..
    Cu codul de la punctul 7:

    order deny,allow
    deny from all

    De ce ati dezinstalat pluginul subscribe-to-comments? Are parti slabe..?

  2. Păun Eugen spune:

    Wp-content/uploads nu are nevoie, in mod normal, de 777. Reciteste si eventual aplica punctul 6.

    Ce plugin de backup folosesti? Da, ar trebui interzici accesul la fisierele de backup prin codul de la punctul 7.

  3. Cristi spune:

    Nu stiu daca trebuie sa aplic punctul 6. Daca acesez http://www.blogulmeu.ro/wp-content/ nu primesc eroare 404, dar nici nu-mi afiseaza continutul acestui folder.
    Acum folosesc pluginul wp-db-backup. In directorul necesar acestui plugin exista un fisier index.php. Trebuie sa pun un fisier .htaccess (cu codul de la punctul 7) in wp-content ori e ok si fara?
    Ms.

  4. Păun Eugen spune:

    Daca primesti o pagina alba inseamna ca exista un index.php gol in wp-content.

    WP-DB-Backup introduce un index.php gol in folderul de backup, al carui nume e generat automat parca, apoi numele fisierelor sunt destul de greu de ghicit pentru a fi accesate direct. Deci e destul de in regula, lasa totul cum e acum.

  5. Cristi spune:

    Multumesc pt raspunsuri si multumesc CNet.ro pt acest articol! Mi-am dat seama ca la unul din site-uri am o tema cu footer-ul codat si ca la toate site-urile pe care le am cu WordPress (am 3), am mai multe plugin-uri dezactivate. Trebuie sa incep curatenia. Mi-am verificat permisiunile fisierelor la toate si sper sa nu apara probleme.
    Numai bine!

  6. Catalin spune:

    Salut, Eugen vad ca te pricepi destul de bine. Am instalat WordPress, am pus o thema. Idea este ca vrea sa inserez in thema respectiva, banner de reclama, am caut niste pluginuri, le-am facut upload si acum intervine partea cu modificarea de adaugare in cod. Sincer sunt utilizator WordPress de f putin timp si vroiam sa stiu daca ma poti lumina. Multumesc.

  7. Eugen spune:

    Ai putea încerca cu un plugin, nu e neaparat nevoie să modifici codul temei. Uite, de exemplu, aici http://www.quickonlinetips.com/archives/2006/11/10-best-wordpress-plugins-for-google-adsense/ niște pluginuri utile, nu numai pentru Adsense.

  8. fyny spune:

    Eroare WordPress /wp-admin/admin.php?page=index.php

    Astazi m-am lovit de o mica problema

    Am actualizat un plugin din admin si imediat a aparut pagina alba – atunci cand doresc sa intru in admin apare doar o pagina alba.

    Eroare pagina alba: http://www.numesite.com/wp-admin/admin.php?page=index.php

    Corect: http://www.numesite.com/wp-admin/index.php

    Va rog mult daca stie cineva cum se poate rezolva problema

  9. jürgen.toth spune:

    Un plugin util pentru sporirea securităţii unui blog în WP poate fi WordPress Firewall Plugin: http://www.seoegghead.com/software/wordpress-firewall.seo

  10. Victor spune:

    Buna seara.
    Am o mare problema cu fisierul .htaccess… se modifica automat cu niste linkuri din Rusia… Am vorbit cu cei la care tin domeniul si au spus ca ei nu se baga ce nu este de la ei, ca este de la mine, ca site-ul este atacat… etc…
    Ce pot face eu ca acest fisier sa nu se mai modifice?
    Multumesc anticipat pentru raspuns.


Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile necesare sunt marcate *