Cum să preveniți injecțiile SQL? (Ghid complet 2020) - MalCare
Publicat: 2023-04-19Sunteți îngrijorat de atacurile cu injecție SQL pe site-ul dvs.? Dacă citiți asta, s-ar putea să știți deja consecințele atacului. În această postare, veți învăța modalitățile simple de a preveni injecțiile SQL .
Injecțiile SQL pot permite unui hacker să deturneze site-ul dvs. WordPress și să controleze accesul asupra acestuia. De acolo, vă pot redirecționa traficul, fura date confidențiale, injectând link-uri spam, pot manipula rezultatele căutării cu caractere japoneze și pot afișa reclame pentru produse ilegale. Acest tip de atac poate provoca daune ireparabile site-ului și afacerii tale.
Din fericire, injecțiile SQL pot fi prevenite dacă iei măsurile de securitate potrivite. În acest ghid, abordăm injecțiile SQL și discutăm în detaliu măsurile eficiente pentru a le preveni și a proteja site-ul dvs. WordPress.
TL;DR: Puteți preveni injecțiile SQL pe site-ul dvs. WordPress utilizând un plugin de securitate de încredere. Instalați MalCare și pluginul va scana automat și vă va apăra site-ul împotriva unor astfel de atacuri.
[lwptoc skipHeadingLevel=”h1,h3,h4,h5,h6″ skipHeadingText=”Gânduri finale”]
Ce sunt atacurile cu injecție SQL?
Toate site-urile WordPress au de obicei zone de intrare care permit unui vizitator să introducă informații. Aceasta ar putea fi o bară de căutare pe site, un formular de contact sau un formular de conectare .
Într-un formular de contact, un vizitator ar introduce datele sale, cum ar fi numele, numărul de telefon și e-mailul și le-ar trimite pe site-ul tău.
Aceste date sunt trimise la baza de date MySQL a site-ului dvs. web. Acesta este procesat și stocat aici.
Acum, aceste câmpuri de introducere necesită configurații adecvate pentru a se asigura că datele sunt verificate și igienizate înainte de a intra în baza de date. De exemplu, o vulnerabilitate a formularului de contact este că ar trebui să accepte doar litere și cifre. În mod ideal, ar trebui să nu accepte simboluri. Acum, dacă site-ul dvs. acceptă date prin acest formular, hackerul poate profita și poate introduce o interogare SQL rău intenționată, cum ar fi:
txtUserId = getRequestString("UserId"); txtSQL = "SELECT * FROM Users WHERE Userwp-block-heading"> How Does An SQL Attack Work?
txtUserId = getRequestString("UserId"); txtSQL = "SELECT * FROM Users WHERE Userwp-block-heading"> How Does An SQL Attack Work?
Hackerii vizează site-urile web care au măsuri de securitate slabe sau vulnerabilități prezente care le facilitează accesul. Din experiența noastră, pluginurile și temele dezvoltă adesea vulnerabilități, iar hackerii sunt foarte conștienți de acest lucru. Ei se plimbă pe internet în mod constant în căutarea de site-uri care folosesc pluginuri și teme vulnerabile.
Pentru a explica acest lucru, vom folosi un exemplu de scenariu. Să presupunem că dl. A folosește un plugin „Formular de contact” pentru a activa un formular pe pagina de contact a site-ului său. Să presupunem că o vulnerabilitate de injecție SQL a fost găsită în acest plugin în versiunea 2.4 și dezvoltatorii au remediat-o și au lansat o versiune actualizată 2.4.1.
La lansare, dezvoltatorii dezvăluie motivul actualizării, făcând defectul de securitate cunoscut. Aceasta înseamnă că hackerii știu că există o defecțiune de securitate prezentă în versiunea 2.4 a pluginului Formular de contact.
Acum, Mr.X întârzie instalarea actualizării cu câteva săptămâni, deoarece pur și simplu nu este timp să ruleze actualizarea. Aici lucrurile merg prost.
Odată ce hackerii află despre vulnerabilități, rulează programe sau folosesc scanere de vulnerabilități care se vor accesa cu crawlere pe internet și vor găsi site-uri web folosind o anumită versiune a unui plugin/temă.
În acest caz, vor căuta site-uri web folosind Formularul de contact 2.4. Odată ce vor găsi site-ul, vor cunoaște exact vulnerabilitatea web, ceea ce le face mult mai ușor să pirateze. În acest caz, ei vor exploata defectul de injectare SQL și vor pătrunde în site-ul dvs.
Tipuri de injecții SQL
Hackerii folosesc două tipuri de injecții SQL:
1. Injecție SQL clasică – Când vizitați un site web, browserul dvs. (cum ar fi Chrome sau Mozilla) trimite o solicitare HTTP către serverul site-ului web pentru a afișa conținutul. Serverul web preia conținutul din baza de date a site-ului și îl trimite înapoi în browser. Așa puteți vizualiza partea frontală a unui site web.
Acum, baza de date a site-ului dvs. web conține tot felul de date, inclusiv date confidențiale, cum ar fi detalii despre clienți, informații de plată și nume de utilizator și parole. Baza de date ar trebui să fie configurată pentru a elibera numai datele front-end. Toate celelalte date confidențiale ar trebui să fie protejate. Dar dacă aceste verificări de securitate a aplicațiilor nu sunt la locul lor, hackerii profită.
Într-un atac cu injecție SQL clasic, hackerii trimit cereri rău intenționate către baza ta de date regăsind date în browserul lor. Dar folosesc șiruri de interogare pentru a solicita informații sensibile, cum ar fi acreditările de conectare ale site-ului dvs. web. Dacă nu ați protejat aceste informații, acestea vor fi trimise hackerului. În acest fel, ei pot pune mâna pe detaliile tale de conectare și pot pătrunde pe site-ul tău. Atacatorii pot folosi, de asemenea, instrucțiuni pregătite ca o modalitate de a executa în mod repetat instrucțiuni de bază de date identice sau similare, cu eficiență ridicată.
2. Blind SQL Injection – În aceasta, hackerul injectează scripturi rău intenționate prin câmpurile de introducere de pe site-ul dvs. Odată ce este stocat în baza de date, ei îl execută pentru a provoca tot felul de daune, cum ar fi modificarea conținutului site-ului sau chiar ștergerea întregii baze de date. În acest caz, pot folosi scripturile rău intenționate pentru a obține și privilegii de administrator.
Ambele scenarii pot avea un impact devastator asupra site-ului și afacerii tale. Din fericire, puteți preveni astfel de atacuri luând măsurile adecvate de securitate și validare a intrărilor pe site-ul dvs.
Pași pentru prevenirea atacurilor prin injecție SQL
Pentru a preveni atacurile cu injecție SQL, trebuie să efectuați o evaluare a securității site-ului dvs. Iată două tipuri de măsuri pe care le puteți lua pentru a preveni atacurile SQL – unele sunt simple, iar altele sunt complexe și tehnice.
Măsuri Preventive Ușoare
- Instalați un plugin de securitate
- Folosiți numai teme și pluginuri de încredere
- Ștergeți orice software piratat de pe site-ul dvs
- Ștergeți temele și pluginurile inactive
- Actualizați-vă site-ul în mod regulat
Măsuri tehnice preventive
- Schimbați numele implicit al bazei de date
- Controlați intrările în câmp și transmiterea datelor
- Consolidează-ți site-ul WordPress
Să începem.
Măsuri de prevenire ușoare împotriva atacurilor prin injecție SQL
1. Instalați un plugin de securitate
Activarea unui plugin de securitate pentru site-ul web este primul pas pe care trebuie să-l faceți pentru a vă proteja site-ul. Pluginurile de securitate WordPress vor monitoriza site-ul dvs. și vor împiedica accesul hackerilor.
Există o mulțime de pluginuri din care să alegeți, dar în funcție de ceea ce are de oferit, alegem MalCare. Pluginul va instala automat un firewall de aplicație web pentru a vă apăra site-ul împotriva atacurilor. Încercările de hack sunt identificate și blocate.
În continuare, scanerul de securitate al pluginului vă va scana site-ul în detaliu în fiecare zi. Dacă există vreun comportament suspect sau activitate rău intenționată pe site-ul dvs., veți fi avertizat imediat. Puteți lua măsuri și remedia site-ul dvs. instantaneu cu MalCare înainte ca Google să aibă șansa de a vă pune site-ul pe lista neagră sau furnizorul dvs. de găzduire să decidă să vă suspende site-ul.
2. Actualizați-vă site-ul în mod regulat
După cum am menționat mai devreme în exemplul nostru de injecție SQL, atunci când dezvoltatorii găsesc defecte de securitate în software-ul lor, le remediază și lansează o nouă versiune care conține corecțiile de securitate. Trebuie să actualizați la noua versiune pentru a elimina defectul de pe site.
Vă sugerăm să dedicați timp o dată pe săptămână pentru a vă actualiza instalarea de bază WordPress, temele și pluginurile.
Cu toate acestea, dacă vedeți că este lansată o actualizare de securitate, instalați imediat actualizarea.
3. Folosiți numai teme și pluginuri de încredere
WordPress este cea mai populară platformă pentru a construi site-uri web și asta se datorează parțial pluginurilor și temelor care îl fac ușor și accesibil. Dar, printre multitudinea de teme și pluginuri disponibile, trebuie să alegeți cu atenție. Verificați detaliile pluginului, cum ar fi numărul de instalări active, data ultimei actualizări și versiunea cu care a fost testat.
Vă recomandăm să le descărcați din depozitul WordPress. Pentru orice alte teme și pluginuri, ar trebui să faceți cercetări adecvate pentru a verifica dacă pot fi de încredere. Acest lucru se datorează faptului că unele teme și pluginuri terță parte pot fi create în mod rău intenționat de hackeri. De asemenea, ar putea fi doar codat prost, ceea ce îl deschide către vulnerabilități.
4. Ștergeți orice software piratat de pe site-ul dvs
Temele și pluginurile piratate sau anulate sunt atrăgătoare. Vă oferă acces gratuit la funcții premium. Dar, din păcate, acestea vin de obicei cu malware preîncărcat. Software-ul piratat este o modalitate ușoară pentru hackeri de a-și distribui programele malware.
Când îl instalați, malware-ul este activat și vă infectează site-ul. Cel mai bine este să stai departe de astfel de software.
5. Ștergeți temele și pluginurile inactive
Este obișnuit să instalezi un plugin și să uiți complet de el ani de zile. Dar acest obicei vă poate expune site-ul hackerilor. Cu cât ai instalat mai multe pluginuri și teme pe site-ul tău, cu atât sunt mai multe șanse ca vulnerabilități să apară și hackeri să profite de ele.
Vă sugerăm să păstrați numai pluginurile și temele pe care le utilizați. Ștergeți restul și faceți site-ul mai sigur. De asemenea, scanează-ți temele și pluginurile existente în mod regulat.
Măsuri tehnice preventive
Aceste măsuri pot necesita puțin mai multe cunoștințe despre funcționarea interioară a WordPress. Cu toate acestea, în zilele noastre, există un plugin pentru orice. Deci, nu trebuie să vă faceți griji cu privire la complexitățile implicate în implementarea acestor măsuri. Îl facem simplu!
1. Schimbați numele implicit al tabelului bazei de date
Site-ul dvs. WordPress este format din fișiere și o bază de date. În baza ta de date, există 11 tabele implicit. Fiecare tabel găzduiește diverse date și configurații. Aceste tabele sunt denumite cu un prefix „wp_”. Deci numele tabelelor poate fi wp_options, wp_users, wp_meta. Înțelegi deriva.
Aceste nume sunt aceleași pe toate site-urile WordPress și hackerii știu asta. Hackerii știu ce tabel stochează ce fel de date. Când hackerii introduc scripturi rău intenționate pe site-ul dvs. web, ei știu unde ar fi stocat scriptul. Folosind o metodă simplă, aceștia pot executa comenzi SQL pentru a rula activități rău intenționate.
Dar dacă schimbați numele tabelului, acesta poate descuraja hackerii să găsească unde se află scripturile. Deci, atunci când hack-urile încearcă să injecteze coduri SQL în tabelele bazei de date, ei nu vor putea afla numele tabelului.
Puteți face acest lucru utilizând un plugin cum ar fi Change Table Prefix sau Brozzme. Pur și simplu instalați unul dintre ele pe site-ul dvs. și urmați pașii.
Puteți face acest lucru și manual, editând fișierul wp-config. Un cuvânt de precauție – un mic pas greșit aici ar putea duce la erori ale bazei de date și defecțiuni ale site-ului. Faceți o copie de rezervă înainte de a continua.
- Accesați contul dvs. de găzduire > cPanel > Manager fișiere.
- Aici, accesați folderul public_html și faceți clic dreapta pe fișierul wp-config.
- Selectați Editați și găsiți următorul cod
„$table_prefix = 'wp_';” - Înlocuiește-l cu -
„$table_prefix = 'test_';”
Puteți alege orice prefix la alegere. Aici am ales „test_” ca nou nume de bază de date. Odată terminat, hackerii nu vor putea să-și localizeze comenzile SQL.
2. Controlați intrările în câmp și transmiterea datelor
Puteți configura toate câmpurile de introducere de pe site-ul dvs. web pentru a accepta numai anumite tipuri de date. De exemplu, un câmp de nume ar trebui să permită doar intrări alfa (litere), deoarece nu există niciun motiv pentru care să fie introduse aici caractere numerice. În mod similar, un câmp de număr de contact ar trebui să accepte numai cifre.
Puteți utiliza funcția sanitize_text_field() care igienizează intrarea utilizatorului. Această validare a intrărilor se asigură că intrările care nu sunt corecte sau pur și simplu periculoase pot fi blocate.
3. Consolidează-ți site-ul WordPress
Acesta este unul dintre cei mai importanți pași pe care îi puteți lua pentru a vă proteja site-ul WordPress împotriva atacurilor prin injecție SQL. Ce este întărirea site-ului?
Un site web WordPress vă oferă multe funcții pentru a vă ajuta să rulați site-ul. Cu toate acestea, majoritatea oamenilor nu folosesc multe dintre aceste funcții. WordPress.org recomandă dezactivarea sau eliminarea unora dintre ele dacă nu le utilizați. Acest lucru va reduce șansele de atacuri, deoarece există elemente mai puține pe care hackerii trebuie să le încerce!
Unele măsuri de întărire WordPress sunt:
- Dezactivează editorul de fișiere
- Dezactivarea instalărilor de pluginuri sau teme
- Implementarea autentificării cu doi factori
- Limitarea încercărilor de conectare
- Schimbarea cheilor de securitate și a sărurilor WordPress
- Blocarea execuției PHP în foldere necunoscute
Pentru a implementa aceste măsuri, puteți utiliza un plugin precum MalCare, care vă permite să faceți acest lucru cu doar câteva clicuri.
Sau îl puteți implementa manual, urmând Ghidul nostru despre întărirea WordPress.
Asta ne duce la capătul prevenirii atacurilor cu injecție SQL. Dacă ați implementat măsurile pe care le-am discutat în această fișă de injecție SQL, site-ul dvs. va fi în siguranță
[ss_click_to_tweet tweet="Atacuri cu injecție SQL pot fi prevenite! Utilizați acest ghid pentru a implementa măsurile de securitate potrivite pe site-ul dvs. WordPress.” content="" style="default"]
Gânduri finale
Prevenirea este într-adevăr mai bună decât vindecarea. Atacurile cu injecție SQL pot provoca stres inutil și o povară financiară severă.
Majoritatea măsurilor pe care le-am discutat astăzi pot fi implementate cu ușurință cu ajutorul pluginurilor. Deci, nu trebuie să vă faceți griji dacă nu sunteți pasionat de tehnologie! Încă te poți proteja!
Împreună cu implementarea acestor măsuri, vă sugerăm insistent să activați MalCare pe site-ul dvs. Firewall-ul său vă va apăra activ site-ul împotriva atacurilor. Îți scanează site-ul în fiecare zi pentru a verifica dacă există tentative de hack și programe malware pe site.
Puteți să vă gândiți la acesta ca fiind agentul de securitate al site-ului dvs. care vă monitorizează site-ul și îi ține pe cei răi afară. Puteți avea liniște sufletească știind că site-ul dvs. este protejat.
Preveniți atacurile de piratare cu pluginul nostru de securitate MalCare!