Cum să vă protejați site-ul WordPress împotriva injecțiilor SQL
Publicat: 2022-03-09WordPress este una dintre cele mai utilizate platforme de creare de site-uri web datorită gamei sale largi de aplicații potențiale. Puteți construi un magazin online, puteți găzdui un blog despre hobby-ul dvs. preferat, puteți crea o comunitate prin forumuri sau puteți reprezenta o mare corporație.
Dar oricum îl utilizați, o responsabilitate principală este să vă protejați site-ul de hackeri. De aceea, este important să înțelegeți cum să preveniți atacurile de injectare Structured Query Language (SQL).
Vestea bună este că există o mulțime de pași pe care îi puteți lua pentru a vă proteja site-ul WordPress de acest cod rău intenționat. A învăța cum să detectați, să eliminați și să preveniți injecțiile SQL vă poate ajuta să vă asigurați în mod eficient datele valoroase și să vă faceți mai puțin susceptibil la atac.
Ce este o injecție SQL și cum funcționează?
Pentru a înțelege cum funcționează injecțiile, este util să aflați mai întâi ce este SQL. Acesta este un limbaj comun folosit în dezvoltarea bazelor de date.
Site-ul dvs. îl folosește pentru a prelua informații critice din baza de date și pentru a genera conținut dinamic. Unele dintre bazele de date SQL includ MySQL (site-uri WordPress), MongoDB și SQL Server.
Site-ul dvs. WordPress folosește o bază de date pentru a gestiona datele și conținutul esențial al site-ului dvs., cum ar fi paginile, postările și comentariile dvs. Acesta aranjează aceste informații în tabele.

Baza de date este locul unde sunt stocate datele dumneavoastră cele mai sensibile. Prin urmare, orice atac care o expune poate avea consecințe grave.
Injecția SQL (SQLI) este un tip de metodă de hacking utilizată de infractorii cibernetici pentru a se infiltra și a manipula bazele de date WordPress. În esență, hackerii pot exploata lacune în codarea backend a site-urilor web și pot introduce cod rău intenționat în câmpurile de introducere a datelor.
Acest cod permite actorilor nefericiți să execute comenzi SQL către serverele de baze de date prin solicitări web folosind șiruri de interogări, cookie-uri și elemente <input>. Aceasta înseamnă că pot crea, accesa, modifica și elimina date din baza ta WordPress.
Există multe puncte de intrare diferite în care se poate întâmpla acest lucru. Câmpurile de intrare cele mai frecvent utilizate includ formulare de înscriere, autentificare și contact, precum și bare de căutare și coșuri de cumpărături.
Să presupunem că aveți un formular pe site-ul dvs. în care vizitatorii își pot introduce numărul de telefon. Infractorii cibernetici pot folosi acel câmp de intrare pentru a introduce cod rău intenționat care solicită numele de utilizator și parola de administrator.
Tipuri de injecții SQL
Există mai multe tipuri diferite de injecții SQL. O categorie este ceea ce se numește „în bandă”. Acesta este cel mai simplu tip de injecție și include atacuri bazate pe erori.
Cu această tehnică, hackerii folosesc injecția pentru a obține detalii despre structura bazei de date și numele tabelelor. De exemplu, un mesaj de eroare poate furniza numele tabelului inclus într-o interogare. Apoi hackerul poate folosi aceste informații pentru a crea noi atacuri.
Un alt tip este ceea ce se numește „injecție oarbă SQL”. Acesta este momentul în care atacatorul trimite o varietate de interogări la baza de date pentru a afla cum analizează site-ul răspunsurile. Acest lucru îi poate ajuta să analizeze răspunsurile la interogările SQL pentru a identifica potențialele vulnerabilități și să solicite bazei de date să transmită date către o sursă externă.
Cât de comune sunt injecțiile SQL?
Din păcate, atacurile cu injecție SQL sunt predominante. De fapt, potrivit unui raport publicat de Akamai, între 2017 și 2019, aproximativ două treimi din atacurile asupra aplicațiilor software au fost atribuite injecțiilor SQL.
Un raport separat de statistici de vulnerabilitate din 2020 a arătat, de asemenea, că injecțiile SQL au reprezentat 42% dintre cele mai comune vulnerabilități critice.
Injecțiile SQL sunt o posibilitate pentru orice site web care utilizează baze de date SQL, cum ar fi site-urile bazate pe WordPress, în special cele care au câmpuri de introducere precum formulare de contact și casete de căutare.
De ce sunt periculoase injecțiile SQL
Injecțiile SQL sunt periculoase din mai multe motive. În primul rând, le oferă hackerilor posibilitatea de a fura informații sensibile, cum ar fi datele dvs. de conectare sau datele clienților.
Hackerii nu numai că pot folosi injecția SQL pentru a procura și a fura date, dar o pot folosi și pentru a șterge acele date. Aceasta înseamnă că riscați să pierdeți informațiile private și esențiale folosite pentru a vă rula site-ul web.
În plus, există riscul de deteriorare a reputației și pierderi de venituri. O încălcare a datelor îți poate afecta afacerea și s-ar putea să pierzi încrederea clienților sau fanilor tăi.
În plus, aceste atacuri pot duce la blocarea site-ului de către Google. Dacă ajungi pe această listă, mulți potențiali vizitatori vor primi un avertisment că site-ul tău este nesigur. Majoritatea acestor oameni se vor întoarce și s-ar putea să nu se mai întoarcă niciodată. În plus, Google vă va retrograda în mod semnificativ clasamentul căutării – ceea ce ar putea duce la o pierdere majoră, pe termen lung, a traficului organic, din care este greu de recuperat.
Cum se detectează injecțiile SQL
Există câteva semne care ar putea indica că ați căzut victima unui atac cu injecție SQL. Una este că primiți brusc un aflux de e-mailuri prin intermediul formularului de contact al site-ului dvs. Un alt indicator este dacă primiți ferestre pop-up ciudate, reclame și mesaje de eroare, mai ales dacă vă redirecționează către site-uri web aparent incomplete.
Din păcate, semnele unui atac de injecție SQL nu sunt întotdeauna atât de evidente. După cum am menționat mai devreme, uneori hackerii doresc să folosească injecții pentru a fura informații, mai degrabă decât pentru a vă deteriora site-ul. Prin urmare, ei pot folosi metode mai subtile care fac detectarea mai dificilă.
Instrumente de detectare și scanare prin injecție SQL
Singura modalitate de a ști cu siguranță dacă ați fost vizat este să efectuați o scanare a site-ului dvs. web. Din fericire, există o varietate de instrumente online care vă pot ajuta să detectați injecțiile SQL pe site-ul dvs. WordPress.
De exemplu, puteți folosi Pentest Tools pentru a efectua două scanări gratuite ale site-ului dvs. web.

Există două opțiuni: o scanare ușoară sau o scanare completă. Pentru acesta din urmă, va trebui să faceți upgrade la un plan plătit. Pur și simplu introduceți adresa URL a site-ului dvs. și faceți clic pe butonul Scanare țintă . Dacă există vulnerabilități prezente, scanarea le va dezvălui.
Cum să eliminați injecțiile SQL de pe site-ul dvs. WordPress
1. Restaurați o copie de rezervă
Cea mai bună opțiune pentru a elimina injecțiile SQL este să restaurați o copie de rezervă a site-ului dvs. Dacă utilizați Jetpack Backup, tot ce trebuie să faceți este să utilizați jurnalul de activitate pentru a determina când a avut loc atacul, apoi să restaurați o copie de rezervă de înainte de acel moment. Site-ul dvs. va fi readus la starea în care era înainte de hack.
Cu toate acestea, este important de menționat că, în unele cazuri, injecțiile SQL se fac puțin câte puțin, în timp. Este posibil să fie nevoie să vă întoarceți destul de departe pentru a găsi o copie de rezervă curată, ceea ce ar putea duce la pierderea datelor.
Și, deși restabilirea unei copii de rezervă poate face site-ul dvs. să funcționeze din nou, dacă datele sensibile au fost furate, va trebui totuși să vă ocupați de ramificațiile încălcării.
2. Folosiți un serviciu de curățare a site-ului web
O altă opțiune este să utilizați un serviciu de curățare a site-urilor web terță parte pentru a vă scana site-ul și a remedia orice injecții SQL. Sucuri este o opțiune - pur și simplu trimiteți site-ul dvs. echipei lor și lăsați-i să se ocupe de orice altceva. Deoarece sunt experți, pot elimina programele malware din baza de date mai eficient decât un dezvoltator mediu.
3. Îndepărtați singur injecțiile
În cele din urmă, dacă aveți experiență în gestionarea și lucrul cu MySQL, puteți curăța manual baza de date. Rețineți, totuși, că aceasta este o tehnică avansată și, dacă nu știți ce faceți, efectuarea oricăror modificări poate duce la probleme.
Cum să preveniți injecțiile SQL în viitor
Nu există nicio modalitate de a vă asigura că site-ul dvs. este vreodată 100% sigur, dar există măsuri pe care le puteți lua pentru a minimiza riscul de atac. Să aruncăm o privire la opt metode pe care le puteți folosi pentru a preveni injecțiile SQL în WordPress.
1. Validați (sau igienizați) datele dvs
Cheia pentru prevenirea injectărilor SQL în WordPress este să securizeze orice câmp de intrare care poate fi folosit pentru a introduce date sau conținut pe site-ul dvs. web. Aceasta include secțiuni de comentarii și formulare. Prin urmare, este important să validăm și să igienizați datele introduse în aceste câmpuri la trimitere.
Validarea și igienizarea intrărilor vă permit să verificați comenzile trimise de utilizatori. Igienizarea vă permite chiar să schimbați comenzile. Este o modalitate eficientă de a vă asigura că aceste comenzi nu conțin cod rău intenționat sau șiruri de caractere.
Validarea asigură că informațiile introduse într-un formular se potrivesc cu formatul solicitat înainte de procesarea cererii. De exemplu, dacă ați avea un câmp de introducere pentru o adresă de e-mail, datele nu ar fi validate dacă simbolul „@” nu ar fi prezent.
Cel mai simplu mod de a crea validarea datelor din formular este stabilirea regulilor pentru formularele dvs. Procesul pentru a face acest lucru va depinde de pluginul specific pe care îl utilizați. De exemplu, dacă utilizați versiunea premium a Formulare formidabile, puteți adăuga propriul format personalizat de mască de intrare pentru câmpurile de text.


Adăugarea cerințelor de format de intrare poate limita riscul de injectare SQL. Igienizarea poate ajuta la asigurarea faptului că datele introduse pot fi procesate în siguranță odată ce au fost validate.
Majoritatea pluginurilor de formulare WordPress dezinfectează automat datele formularelor. Cu toate acestea, puteți adăuga măsuri de securitate suplimentare. Mai degrabă decât răspunsuri deschise, luați în considerare utilizarea meniurilor derulante și a opțiunilor cu opțiuni multiple. De asemenea, puteți restricționa utilizarea caracterelor speciale.
2. Instalați un instrument de securitate WordPress
Pluginul de securitate WordPress de la Jetpack vă poate monitoriza site-ul pentru vulnerabilități care ar putea duce la injecții SQL. Acest lucru vă oferă posibilitatea de a le repara înainte ca cineva să profite.
Cu monitorizarea timpului de nefuncționare, veți ști în momentul în care site-ul dvs. se defectează, astfel încât să puteți reacționa rapid. Și cu copii de rezervă în timp real, vă puteți restaura site-ul în întregime.
De asemenea, oferă instrumente de securitate precum:
- Scanarea programelor malware pentru fișierele dvs. WordPress, împreună cu remedieri cu un singur clic pentru majoritatea problemelor
- Soluții anti-spam pentru a vă proteja comentariile și formularele de contact
- Protecție împotriva atacurilor de forță brută pentru a ține accesul hackerilor
3. Mențineți site-ul și baza de date actualizate în orice moment
Utilizarea de software și instrumente învechite poate introduce o întreagă gamă de vulnerabilități pe site-ul dvs. pe care hackeri le pot exploata. Acesta este motivul pentru care este important să vă asigurați că vă mențineți site-ul WordPress actualizat în orice moment.
În prezent, aproape jumătate dintre instalările WordPress nu folosesc cea mai actualizată versiune. Prin urmare, poate doriți să luați în considerare activarea actualizărilor automate pentru a vă asigura că rulați întotdeauna cea mai recentă versiune de WordPress.
Pentru a face acest lucru pentru actualizările Core, puteți naviga la wp-config.php din directorul rădăcină al site-ului dvs. web. Apoi, copiați și inserați următorul fragment de cod în fișier:
define( 'WP_AUTO_UPDATE_CORE', true );
Puteți activa actualizările automate pentru pluginurile dvs. navigând la Pluginuri ecran din tabloul de bord administrativ. Apoi, faceți clic pe Activați Actualizări automate din coloana din extrema dreaptă.

Pentru a minimiza vulnerabilitățile, vă recomandăm să eliminați orice plugin sau teme neutilizate de pe site-ul dvs. De asemenea, este înțelept să vă actualizați versiunea SQL. Dacă utilizați cPanel pentru panoul de control al găzduirii, vă puteți actualiza software-ul MySQL din tabloul de bord. În funcție de furnizorul dvs. de găzduire, este posibil să puteți activa actualizările automate SQL.
4. Schimbați prefixul bazei de date WordPress
În mod implicit, de fiecare dată când instalați WordPress, CMS folosește „wp_” ca prefix al bazei de date. Vă recomandăm să schimbați acest lucru cu altceva, deoarece hackerii îl pot folosi pentru a exploata vulnerabilități prin injecție SQL.
Înainte de a începe, ar trebui să faceți o copie de rezervă a bazei de date. În acest fel, dacă ceva nu merge bine, aveți o versiune sigură de restaurat.
Apoi, conectați-vă la site-ul dvs. prin clientul FTP sau managerul de fișiere al gazdei dvs. și navigați la fișierul wp-config.php , care se află în directorul rădăcină al site-ului dvs. În fișier, căutați linia table_prefix, apoi schimbați „wp_” cu altceva:
$table_prefix = 'wp_a12345_';
Când ați terminat, salvați fișierul. Asta e!
5. Utilizați un firewall
O altă strategie pe care o puteți folosi pentru a vă proteja împotriva injectării SQL este instalarea unui firewall. Acesta este un sistem de securitate a rețelei care vă ajută să monitorizați și să controlați datele care vin în site-ul dvs. WordPress. Acest lucru poate prinde și filtra codul rău intenționat, inclusiv pe cele din atacurile cu injecție SQL.
Există o mare varietate de instrumente de firewall WordPress pe care le puteți utiliza. Unele opțiuni populare includ Wordfence și Sucuri. Aceste instrumente nu vor împiedica atacatorii să trimită comenzi, dar pot ajuta să-i împiedice să acceseze efectiv site-ul dvs.
6. Ascundeți versiunea de WordPress pe care o utilizați
Având versiunea site-ului dvs. WordPress disponibilă public, atacatorii pot exploata mai ușor vulnerabilitățile cunoscute, deoarece fiecare versiune vine cu propriul set. Prin urmare, pentru a vă proteja site-ul, vă recomandăm să ascundeți versiunea pe care o utilizați.
A face acest lucru este rapid și ușor. Pentru a începe, copiați pur și simplu următorul fragment de cod:
remove_action('wp_head', 'wp_generator');
Apoi, navigați la fișierul functions.php al temei dvs. WordPress curente. Puteți face acest lucru direct din Editorul de teme din WordPress, folosind un client FTP sau folosind Managerul de fișiere al gazdei dvs. Lipiți codul în fișier, apoi salvați modificările.
7. Eliminați funcționalitățile inutile ale bazei de date
Cu cât are mai multe funcționalități baza de date WordPress, cu atât este mai susceptibilă la atac. Pentru a minimiza riscul de injectare SQL, luați în considerare normalizarea bazei de date și eliminarea oricăror funcții și conținut inutile.
Pe scurt, normalizarea bazei de date se referă la procesul de organizare a datelor dumneavoastră. Scopul acestui lucru este de a elimina orice date redundante din baza de date și de a vă asigura că toate dependențele de date au sens. Puteți face acest lucru punând baza de date în First Normal Form.
Dacă doriți o opțiune mai prietenoasă pentru începători pentru a vă curăța baza de date WordPress, puteți utiliza un plugin. Există o mână de opțiuni solide din care să alegeți, cum ar fi WP-Optimize.
Acest plugin freemium vă ajută să vă curățați baza de date fără a fi nevoie să rulați manual comenzi SQL prin phpMyAdmin. În schimb, îl puteți folosi pentru a vă optimiza baza de date direct din tabloul de bord WordPress.

Îndepărtează toate informațiile inutile din baza de date, inclusiv coșul de gunoi și comentariile neaprobate. WP-Optimize vă permite, de asemenea, să vă defragmentați tabelele bazei de date MySQL cu un singur clic.
8. Limitați accesul și permisiunile utilizatorilor
Puteți atribui diferite roluri utilizatorilor WordPress pe site-ul dvs. web. Acestea pot varia oriunde, de la un abonat la un administrator. Cu fiecare rol, puteți controla cât de mult acces este acordat și ce „capacități” le sunt oferite.
Pentru a vă consolida securitatea, cel mai bine este să limitați numărul de roluri cu acces complet de administrator și permisiuni de utilizator. Cu cât sunt mai puține persoane capabile să schimbe și să introducă date, cu atât este mai puțin probabil să vă confruntați cu un atac cu injecție SQL.
Pentru a personaliza rolurile și permisiunile utilizatorilor în WordPress, puteți naviga la Utilizatori → Toți utilizatorii .

Apoi, faceți clic pe linkul Editați de sub numele utilizatorului pentru care doriți să limitați accesul și permisiunile. Pe ecranul următor, le puteți schimba rolul utilizând meniul derulant Rol .
Când vă gestionați rolurile de utilizator WordPress, vă recomandăm, de asemenea, să ștergeți toate conturile care nu mai sunt utilizate. Eliminarea rolurilor care sunt învechite vă poate minimiza vulnerabilitățile.
9. Evitați utilizarea pluginurilor anulate
Pluginurile anulate sunt instrumente premium care au fost furate și sunt oferite gratuit. Deși pot părea foarte multe, nu numai că răniți dezvoltatorul original prin faptul că nu-i plătiți pentru munca lor, ci riscați și un hack.
Pluginurile anulate sunt foarte adesea pline de coduri rău intenționate și uși din spate care oferă hackerilor o poartă ușoară către site-ul dvs. Evitați-le cu orice preț și, în schimb, utilizați pluginuri din surse de renume.
Protejează-ți site-ul WordPress de injecțiile SQL
Pentru a vă proteja site-ul și datele de amenințarea infractorilor cibernetici, este important să fiți conștient de unele dintre cele mai frecvente metode utilizate pentru a obține acces la site-ul dvs. Când vine vorba de consolidarea securității bazei de date, asta înseamnă să fii bine versat în injecțiile SQL.
După cum am discutat în această postare, o injecție SQL poate avea efecte dăunătoare asupra site-ului dvs. WordPress, de la expunerea datelor sensibile până la pierderea conținutului și a veniturilor. Din fericire, există o mână de pași pe care îi puteți lua pentru a detecta, elimina și preveni atacurile de injecție.
Niciun site web nu este vreodată în întregime sigur, dar urmând sfaturile și tehnicile de mai sus, vă puteți reduce semnificativ șansele de a deveni victima injecțiilor SQL.