Funcțiile de securitate ale WordPress-ului, în ciuda a ceea ce crede majoritatea utilizatorilor, nu sunt așa de complicate și îndată te vei convinge singur de asta. Menținerea unui nivel de securitate de bază este simplă, însă în cazul fiecărei modificări este necesar să fii vigilent. Ca furnizor al celui mai rapid hosting WordPress simțim că este datoria noastră să-ți oferim recomandări legate de ceea ce poți face, pentru securitatea paginii tale. Acest articol te va ajuta să configurezi funcțiile de securitate ale WordPress-ului.

Securitate WordPress. Cunoștințe de bază și practici bune.

M-am gândit mult dacă merită discutat acest aspect… însă observațiile mele de zi cu zi m-au încurajat să iau în considerare prezentarea informațiilor de bază. Deși experții în securitate deseori vorbesc despre această problemă, mulți utilizatori continuă să folosească combinații simple de login-uri și parole (de ex. login: admin, parolă: Coleg12).

Aproape fiecare dintre noi, măcar o dată în viață, a avut o parolă foarte simplă: un cuvânt sau două, fără caractere speciale. Este normal să ne dorim să avem o parolă simplă, pe care să o ținem minte, dar… Dacă aceasta este simplă pentru noi, cu siguranță va fi simplă de ghicit și pentru un potențial hacker. Sunt persoane cărora le vine foarte ușor să memoreze datele noastre de securitate într-un mod prozaic, de exemplu urmărind mișcările noastre de peste umăr sau cu ajutorul metodei Brute-Force. Persoana respectivă poate încerca să ghicească parola și, într-un final, să reușească. Măsurile de siguranță WordPress pe care le vei introduce trebuie să prevină o astfel de situație.

Parole și criptarea conexiunilor ca elemente ale securității WordPress

Doar nume de utilizatori originale și parolele puternice pot ridica nivelul de securitate. Nume precum: admin, administrator, webmaster, postmaster, <aici_denumire_pagină> sau user trebuie excluse. Hai să avem grijă, pentru că altfel cineva poate profita de neatenția noastră.

În plus, țin să reamintesc de criptarea conexiunilor. În zilele noastre, când costul unui certificat este de câțiva zeci de lei, nu merită să economisești pe soluții sigure. Certificatul SSL confirmă autenticitatea paginii web și o protejează împotriva atacului Man in the middle.

Certificatul SSL este fundamental când te gândești la securizarea unui formular în WordPress. Nu te protejează, ce-i drept, de spamare prin formular, însă datorită acestuia, datele completate vor fi securizate „în drumul” dintre browser-ul utilizatorului și server. Securitatea WordPress nu poate fi considerată completă fără certificatul SSL.

Susținere bogată și, în același timp, slabă

Să începem cu începutul… Care este cauza cea mai frecventă a infectării, ce apare în WordPress și în orice CMS popular (ca de exemplu: Joomla)? Lipsa actualizărilor și folosirea unor produse adiționale (plugin-uri) care au fost „abandonate” de către creatori.

Pentru a ilustra situația, hai să analizăm plugin-ul: „Steam Widget”. După cum se vede – plugin-ul este actual după instalare. Securizarea care în WordPress se înțelege prin actualizarea plugin-urilor – este îndeplinită, totul pare să fie în regulă, însă trebuie să te uiți la data ultimei actualizări:

Plugin-ul a fost actualizat ultima dată acum 7 ani. În plus, pe pagina online a plugin-ului apare un banner mare:

După cum se vede – WordPress-ul ne anunță de unul singur, că plugin-ul nu mai este întreținut. Chiar și așa, acesta nu a fost eliminat din baza plugin-urilor, fapt pentru care continuă să fie instalat de mulți proprietari de aplicații – iar aceasta reprezintă una dintre posibilitățile de infectare. După cum vezi în exemplul de mai sus, pentru a-ți proteja WordPress-ul, actualizările nu sunt suficiente. Un rol important îl joacă și plugin-urile alese.

Protejarea WordPress-ului include, așadar, grija pentru actualizarea tuturor plugin-urilor. Bine, suntem cu ochii pe plugin-uri – ce trebuie să mai ținem minte?

Actualizările automate și rola acestora în securitatea WordPress

Îți recomandăm să automatizezi totul. Poate dăm startul, pentru început, actualizării WordPress-ului în sine? Acest proces este foarte simplu, pentru că este suficient să adaugi în fișierul wp-config.php codul:

define( ‘WP_AUTO_UPDATE_CORE’, true );

Poate fi adăugat practic oriunde, așa că nu ar trebui să-ți creeze probleme. De acum toate actualizările WordPress vor avea loc automat. Unul dintre procese a fost automatizat. Să ne ocupăm acum de actualizarea plugin-urilor, stilurilor și a traducerilor.

<?php

add_filter(’auto_update_plugin’, ‘__return_true’ );

add_filter(’auto_update_theme’, ‘__return_true’ );

add_filter(’auto_update_translation’, ‘__return_true’ );

MU Plugins permite adăugarea unor funcționalități, care de fiecare dată trebuie să fie declanșate și sunt independente de stil și plugin. Din momentul adăugării acestora în fișier, toate funcțiile adiționale vor fi actualizate automat și nu trebuie să fii cu ochii pe acest proces. Important este să ștergi plugin-urile, pe care nu le mai folosești. Chiar dacă le „oprești” în panelul paginii web, acestea vor fi, în continuare, disponibile sub formă de cod și pot fi un pericol pentru pagina ta WWW.

În plus, îți recomandăm ascunderea versiunii de WordPress. Chiar dacă, dintr-un anumit motiv, actualizarea nu va avea loc, hackerul nu va fi, în totalitate, conștient de acest lucru.

Securitatea WordPress în cazul avariei serverului

Avem deja actualizări automate. Asta înseamnă, că nu trebuie să ne mai facem griji pentru nimic? Greșit! În multe alte locuri se mai poate produce infectarea și scurgerea de date, de ex. în cazul avariei. Când se produce o avarie a interpretorului PHP, chiar dacă fișierele nu sunt în lucru, acestea se pot afișa. În această situație, fiecare va avea acces în codul paginii din orice browser. Așadar, procesul de securizare a WordPress-ului ar trebui să includă astfel de situații.

Din fericire, hosting-ul WordPress din oferta noastră răspunde foarte bine la pericole de acest gen. Backup-ul datelor este realizat la fiecare 6 ore iar copia fișierelor și a căsuței de e-mail o dată pe zi. Este uimitor faptul că, în zilele noastre, backup-ul datelor este disponibil cu până la 28 zile în urmă!

Backup WordPress

Există cel puțin 3 motive, pentru care merită să faci, regulat, un backup al WordPress-ului tău.

  • Riscul deteriorării WordPress-ului tău în urma unui atac asupra paginii web.
  • Posibilitatea, ca tu să comiți o eroare și de ex. să ștergi sau să suprascrii un fișier important.
  • Firma de hosting va suferi o avarie – foarte puțin probabil.

Datele de login în bază sunt protejate

Este o situație periculoasă, dar nu tragică. WordPress-ul precum și plugin-urile/stilurile din repertoriu sunt disponibile pentru toți, deci practic, codul paginii web este cunoscut tuturor. Însă mai de preț decât codul în sine, este baza. În această situație, datele de login pot fi, de asemenea, disponibile pentru toți. Acest lucru poate duce la scurgeri  de date, iar atunci… parolele, login-urile, e-mailurile, datele clienților, coșul de cumpărături, lista produselor – totul va fi disponibil tuturor.

De aceea, este necesară securizarea accesului în fișierul, în care sunt stocate datele sensibile de acces. Un astfel de fișier este wp-config.php, care conține o configurație a WordPress-ului. O soluție foarte bună va fi adăugarea în fișierul .htaccess a textului:

<Files .htaccess wp-config.php>

order allow,deny

deny from all

</Files>

Efectuarea pașilor de mai sus va face imposibilă accesarea fișierului chiar și în cazul avariei interpretorului.

O idee pentru a proteja fișierul wp-config.php în WordPress

Multe dintre atacurile automate țintite în WordPress încearcă „să ajungă” în conținutul fișierului wp-config, pentru că din acesta pot fi sustrase datele de acces în bază.

Nu există nicio barieră în așezarea acestor date într-un alt fișier, care ar fi doar inclus în wp-config. Bineînțeles un programator cu experiență se va orienta imediat, unde trebuie să caute aceste date, însă atacurile automate, în cele mai multe cazuri, nu vor oferi atacatorilor informațiile necesare.

Ține minte să protejezi și acest fișier de citirea directă printr-un cod potrivit introdus în .htaccess.

Dezactivarea editorului de fișiere

Urmărirea plugin-urilor, actualizări automate și încetul cu încetul pagina noastră web începe să fie protejată, însă merită să mai iei sub lupă câteva element adiționale. Să presupunem, ipotetic vorbind, că parola noastră a fost scursă și cineva are acces pe pagina noastră. În opțiunea Aspect > Editor se află o funcționalitate interesantă, ce constă în posibilitatea editării stilului paginii (împreună cu codul) direct din WordPress. Aceasta este foarte utilă în momentul creării paginii web. În așa-numita fază a producției – este mai bine să nu o deții. Așadar, este mai sigur să dezactivezi această funcționalitate, pentru a limita posibilitatea unor manipulații. Pentru a face acest lucru, trebuie să te întorci în fișierul wp-config.php și să adaugi un nou cod (de exemplu, sub codul cu actualizările). Acest cod este simplu: define(’DISALLOW_FILE_EDIT’, true);

Din acest moment editorul este dezactivat, fără a interfera cu nucleul principal al aplicației. Chiar dacă în viitor va fi necesară o schimbare, cu ajutorul FTP poți edita fișierele (îți recomand să nu folosești FTP în sine, ci sFTP, dacă este disponibil, eventual FTPS – versiune criptată a FTP) sau să pregătești o actualizare automată a stilului.

Securizare WordPress – ce facem cu fișierele?

Merită să iei în considerare protejarea și altor fișiere, care nu sunt atât de importante pentru un utilizator standard, dar rămân o sursă excelentă de informație pentru un potențial hacker. Cataloagele wp-includes și wp-admin/includes dețin fișiere, care merită să fie blocate, iar acest lucru îl poți face cu ajutorul codului de mai jos în .htaccess:

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /

RewriteRule ^wp-admin/includes/ – [F,L]

RewriteRule !^wp-includes/ – [S=3]

RewriteRule ^wp-includes/[^/]+\.php$ – [F,L]

RewriteRule ^wp-includes/js/tinymce/langs/.+\.php – [F,L]

RewriteRule ^wp-includes/theme-compat/ – [F,L]

</IfModule>

Protecția împotriva fișierelor trimise ca element al securității WordPress

Un alt director pentru colectarea fișierelor, care poate fi folosit pentru infectarea paginii noastre web este cel, în care sunt plasate toate fișierele trimise. Deținerea unui formular pe pagina online este o practică tot mai frecventă. Indiferent dacă este vorba de un formular pentru comenzi sau unul de contact – putem plasa în el posibilitatea partajării unui fișier. Aceasta poate fi o imagine sau chiar un document. Însă ce se va întâmpla, dacă cineva va folosi acest formular, pentru a plasa un script pe server?

Din păcate, formularele protejate slab pot duce la astfel de situații. Chiar și cele potențial protejate – pot fi vulnerabile. Putem încerca diferite acțiuni cu formularul, de exemplu, putem adăuga securizări adiționale, verificarea identității de tip MIME, scanare cu un antivirus – putem face foarte multe lucruri. Acestea însă necesită timp, resurse și conștientizarea problemei. Chiar și cele mai mari firme IT au comis faux pas de-a lungul timpului, așadar, cum să ne protejăm eficient?

Blocarea efectuării fișierelor PHP

WordPress-ul este o aplicație creată în limbajul PHP și la fel – pe server – este efectuat un cod, care într-un final ne afișează pagina. Dacă limbajul PHP este pus în funcțiune, asta înseamnă că putem trimite un fișier PHP care, de asemenea, să poată fi rulat pe server. Poate merită să blochezi crearea fișierelor PHP pe server? Măcar a celor trimise prin formular?

<Files *.php>

deny from all

</Files>

Codul de mai sus va bloca rularea fișierelor cu extensia *.php pe server și un astfel de fișier .htaccess trebuie adăugat în directorul wp-content/uploads/. Acum, chiar și în cazul trimiterii unui fișier PHP pe server, hacker-ul nu va rula codul. Adevărul este că simpla trimitere a codului nu este un atac rafinat. Este ușor de detectat și te poți proteja de acesta destul de ușor. O provocare mai mare reprezintă protejarea de așa-numitul „Code injection”. Aici trebuie să fii mai atent, dar există o posibilitate de a-ți proteja parțial pagina web. Îți recomand să mergi în directorul nostru principal .htaccess și să adaugi în acesta codul de mai jos:

Options +FollowSymLinks

RewriteEngine On

RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]

RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]

RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2})

RewriteRule ^(.*)$ index.php [F,L]

Securitate WordPress – blocarea accesului în panoul de administrare

O altă securizare este reprezentată de protecția panoului nostru de administrare. Dacă un astfel de acces ar nimeri în mâinile nepotrivite, ar putea genera multe probleme. Având în vedere, că accesul în acesta nu este oferit oricui, pentru că este panoul nostru de administrare – atunci de ce să-l distribuim tuturor? Există multe soluții, însă o idee foarte bună ar fi blocarea accesului doar la adresele IP, de pe care ne conectăm noi. Dacă avem diferite IP-uri, putem adăuga toată lista IP a furnizorului nostru de internet. Un exemplu de cod:

<IfModule mod_rewrite.c>

RewriteEngine on

RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ [OR]

RewriteCond %{REQUEST_URI} ^(.*)?wp-admin(\/)$ [OR]

RewriteCond %{REQUEST_URI} ^(.*)?wp-admin/$

RewriteCond %{REMOTE_ADDR} !^200\.200\.200\.200$

RewriteRule ^(.*)$ – [R=403,L]

</IfModule>

Bineînțeles, acesta poate fi ajustat nevoilor tale, așadar recomand această opțiune numai webmasterilor cu experiență.

Plugin-urile ce garantează securitatea în WordPress

La sfârșit am lăsat subiectul plugin-urilor, ce „garantează” securitatea. Plugin-urile populare, precum WordFence, nu pot garanta o protecție de 100%. Ele în sine sunt un exemplu de loc, în care accesul poate fi spart. În plus, cu cât mai multe aplicații adiționale, cu atât mai multe drumuri neautorizate de acces ale paginii. Bineînțeles, rolul lor este de a spori securitatea și deseori îndeplinesc această funcție. Eu personal pot recomanda plugin-uri precum Cerber sau Sucuri. Însă nu este recomandat să te bazezi pe ele 100%, ca pe un vademecum pentru toate problemele de securitate.

Plugin-ul pentru securitate WordPress

Plugin-ul pentru securitatea WordPress este o idee controversată. Începând de la eficacitate și terminând la faptul că plugin-urile sunt în sine un cod mai lung, deci cu o susceptibilitate mai mare. Persoanele fără cunoștințe tehnice, care au de ales între a nu face nimic și a folosi un plugin – cel mai probabil vor alege a doua variantă. Recomand însă configurarea independentă a aspectelor legate de securitate peste tot, unde este posibil. Niciuna dintre opțiunile descrise în acest articol nu este susceptibil[, pentru că nu impune introducerea unui cod nou, care ar putea avea astfel de predispoziții.

Securitatea WordPress – formulare online

Despre protecția formularelor online în WordPress am vorbit parțial mai devreme, cu ocazia atingerii subiectului referitor la certificate SSL sau protecția panoului de logare. Ne mai rămâne problematica formularelor „normale”, dedicate utilizatorilor, de ex. înregistrarea în serviciu sau adăugarea de comentarii.

Pe scurt putem spune că acest tip de formulare sunt predispuse multor factori de risc:

  • introducerea datelor incomplete;
  • introducerea datelor false;
  • comentarii spam pentru obținerea de link-uri;
  • flooding – supraîncărcarea formularului de către roboți cu multe sesizări într-un timp scurt;
  • e-mail spam, care va duce la scăderea reputației domeniului tău (dacă ai activat în formular notificări prin e-mail).

Protecția WordPress activată, însă chiar și așa contul a fost spart. Ce fac acum?

Nu putem prevedea totul și nu ne putem proteja de toate evenimentele posibile. Copia de siguranță este o prioritate. Backup-ul ne salvează nu numai de consecințele unor posibili viruși, ci și în cazul problemelor cu pagina web.

Din experiența noastră reiese că oamenii se clasifică în 3 grupe:

  • cei care fac backup;
  • cei ce cred că fac backup;
  • cei care vor începe să facă backup;

În cazul virusării, datorită backup-urilor regulate, este ușor să aducem pagina web la forma de dinainte de atac. Ștergem totul și refacem din backup. Copiile pot fi făcute și separat. Backupul propriu va fi un suport adițional la protecția oferită de firmele de hosting. Metoda aceasta de eliminare a virușilor de pe pagina WordPress este foarte eficientă și poate fi externalizată firmei care oferă astfel de servicii.

În ceea ce privește firmele de hosting – majoritatea acestora efectuează backup, dar nu toate o fac la fel de bine, precum cyber_Folks. Un hosting WordPress bun va avea în centru întotdeauna protejarea clienților săi, ceea ce simplifică multe. Ține minte, să alegi unul, care efectuează backup-ul în fiecare zi și îl păstrează cât mai mult posibil. Ideal ar fi câteva săptămâni. Important este și faptul că le poți recupera singur, fără necesitatea contactului cu suportul tehnic.

Chiar și așa, îți recomandăm să efectuezi și backup-uri proprii. Săptămânale, lunare, trimestriale și să le păstrezi acasă, cel mai bine pe un disc extern criptat. Poate că sună exagerat, însă cel mai bine este să previi, decât să tratezi.

Am ajuns împreună la sfârșitul articolului. Sperăm că ești de părere că aceste cunoștințe sunt de ajutor. Îmi va face o deosebită plăcere dacă vei distribui articolul pe Social Media și vei lăsa un comentariu mai jos.

>
Magdalena Paciorek
Evanghelista WordPress-ului, webdeveloper și organizatoarea webinarelor noastre, fană a editorului Gutenberg.

Adaugă comentariul

Adresa ta de e-mail nu va fi publicată.

Cauți mai departe?