Top 12 cele mai bune practici de securitate pentru PHP

Publicat: 2021-08-14

Securitatea este un subiect important pentru toți dezvoltatorii de software, dar dezvoltatorii PHP se confruntă cu unele provocări unice. În această postare de blog, vom explora primele 12 bune practici de securitate pentru PHP, împreună cu modul în care le puteți implementa în codul dvs. pentru a vă menține site-ul în siguranță și securizat. Puteți folosi întotdeauna profesioniștii de la WebCitz pentru a vă gestiona nevoile de programare PHP!


1. Actualizați-vă versiunea PHP în mod regulat

Asigurați-vă că versiunea dvs. PHP este actualizată pentru a minimiza riscul de vulnerabilități de securitate. Patch-urile remediază adesea erorile cunoscute, așa că este important să profitați de ele pe măsură ce sunt lansate.

Hackerii au început deja să exploateze cele mai recente defecte din PHP. Aceia dintre voi cu versiuni mai vechi vor fi vulnerabili la intruziunile lor, dacă nu vă schimbați configurația!

Puteți încerca versiunea de previzualizare, dar consilierii de securitate avertizează companiile să evite lansările de previzualizare a unui nou software, deoarece ar putea avea încă defecte de securitate necunoscute.

Logo PHP

2. Nu expuneți date sensibile la Internet printr-o conexiune necriptată

Multe site-uri web sunt încă vulnerabile deoarece dezvoltatorii lor au făcut o greșeală de a expune acreditările bazei de date sau ale sistemului de fișiere pe internetul public folosind un protocol FTP neprotejat, un cont de e-mail fără protecție SSL etc.

Protejați aceste fișiere și foldere criptându-le înainte de a le transmite prin orice conexiune de rețea care nu este criptată cu TLS/SSL.

Grafic de blocare de securitate

3. Protejați-vă împotriva atacurilor prin injecție SQL

O vulnerabilitate de injectare SQL (Structured Query Language) apare atunci când intrarea utilizatorului este utilizată într-o interogare fără validarea adecvată a tipului și intenției acesteia, ceea ce compromite fiabilitatea rezultatelor afișate prin următoarele interogări îmbinate împreună din șirurile trimise.

Sună complicat, dar tot ce trebuie să știți este că acest atac vă poate expune datele de afaceri și informațiile sensibile.

Cel mai bun mod de a vă proteja împotriva atacurilor de injectare SQL este prin securizarea intrării – împiedicând hackerii să-și injecteze propriul cod în site-ul web printr-un câmp de formular sau o casetă de tip breakout. Doriți să dezinfectați orice valoare trimisă de utilizator înainte de a le introduce într-o interogare SQL, astfel: $input = filter_var($_POST['field'], FILTER_SANITIZE_STRING); if(!empty($input)){ echo „Ați introdus: „.$input.”

„; }else{echo 'Vă rugăm să introduceți ceva';} . Observați cum am folosit empty () pentru a ne asigura că nu există câmpuri goale.

Încuietori de securitate într-un rând, toate albastre, în afară de unul roșu în centru și deblocat

4. Asigurați-vă că stocați în siguranță datele sensibile

Când vine vorba de păstrarea în siguranță a parolelor și a informațiilor cărților de credit, nu există loc pentru erori – mizele sunt prea mari dacă un hacker obține acces la aceste fișiere sau baze de date care conțin aceste informații!

Pentru a minimiza riscul ca un astfel de atac să se producă, utilizați întotdeauna un algoritm de criptare puternic atunci când stocați date sensibile în baza de date – de preferință unul cu criptare AES pe 128 de biți, cum ar fi SHA512_RSA.

Există, de asemenea, software disponibil care facilitează gestionarea bazelor de date criptate: MySQL Encryption Utilities (MEU). Este important de reținut că MEU criptează doar câmpurile de text din bazele de date MySQL, dar acest lucru este suficient de bun pentru majoritatea cazurilor de utilizare.

persoană care lucrează pe un rack de server

5. Nu refolosi parolele

Reutilizarea aceleiași parole din nou și din nou este o modalitate sigură de a vă sparge contul mai devreme decât mai târziu! Dacă utilizați funcțiile încorporate PHP pentru a genera șiruri aleatorii de text (cum ar fi rand()), amintiți-vă că acestea sunt de scurtă durată, așa că asigurați-vă că le schimbați cel puțin o dată la câteva luni.

Doriți să includă litere mari, litere mici, numere și simboluri. De asemenea, nu strica să existe reguli mai complexe cu privire la momentul în care ar trebui generat și un șir nou - cum ar fi o dată pe săptămână sau după trei încercări de conectare cu o parolă incorectă. Există chiar și un software disponibil care poate face calculul pentru tine!

Câmpurile de autentificare pentru nume de utilizator și parolă

6. Asigurați-vă că aplicațiile dvs. nu sunt vulnerabile la atacurile XSS

XSS (Cross-Site Scripting) este un atac prin care cod rău intenționat este injectat într-un site web și apoi este executat în browserul unui vizitator. Acest lucru poate duce adesea la furtul cookie-urilor sau la deturnarea sesiunii, ceea ce oferă hackerilor acces la toate datele dvs. sensibile fără a fi necesar să-și introducă propriile acreditări - cum ar fi parolele sau numerele cărților de credit.

Această vulnerabilitate poate fi exploatată prin utilizarea de validare a formularelor JavaScript pe paginile web, astfel încât orice intrare introdusă de vizitatori să fie executată automat prin reîmprospătarea paginii, afișând hyperlinkuri cu conținut activ, cum ar fi imagini în interiorul lor, și adăugând parametrii furnizați de utilizator pe adrese URL dinamice precum „? cont=123' etc.

hacker stând la birou

7. Protejați-vă împotriva atacurilor CSRF

CSRF (Cross-Site Request Forgery) este un tip de atac în care comenzile neautorizate sunt transmise de pe site-ul atacatorului către aplicația dvs. web. Acest lucru poate duce la deturnarea sesiunii sau furtul cookie-urilor, printre altele.

Poate părea dificil la prima vedere, dar tot ce trebuie să faceți este să oferiți un simbol suplimentar care necesită verificare pentru orice acțiune în care ar putea fi expuse informații sensibile, cum ar fi conectarea la contul altui utilizator - acest lucru vă va asigura că nu există doar unul. un singur punct de vulnerabilitate și asigurați-vă că conturile automate nu sunt utilizate pe site-ul dvs.

hacking de persoane

8. Nu uitați de patch-urile obișnuite!

De multe ori este de la sine înțeles, dar ar trebui să țineți pasul cu corecțiile noi vulnerabilități atunci când acestea sunt lansate de furnizorul dvs. de sistem sau de furnizorul de software.

Nu știi niciodată ce gaură de securitate a găsit altcineva, dar tu nu știi, și este mai bine să fii informat decât să-ți pirateze site-ul!

persoană care atacă cu cuvântul securitate în spate

9. Nu lăsați modul de depanare activat în mediile de producție

Codul de depanare are adesea capabilități de a activa lucruri precum editarea fișierelor de la distanță (fopen()) și generarea de interogări SQL brute prin mysql_query().

Acestea sunt grozave dacă doriți să generați urme de stivă completă atunci când apar erori, dar creează riscuri majore de securitate pe site-ul dvs. de producție. Dezactivarea acestor funcții și eliminarea oricăror cazuri în care sunt utilizate vă va economisi mult timp și atunci când vine vorba de corectarea erorilor!

graficul unei lupe deasupra unui bug care se află pe ecranul unui computer

10. Verificați firewall-ul pentru porturi deschise

Poate fi tentant să apăsați pe „următorul” ori de câte ori Windows termină instalarea actualizărilor, dar nu uitați să verificați ce servicii rulează și dacă totul este configurat corect sau nu - asta include și actualizarea firewall-urilor, dacă este necesar.

Va ajuta la ținerea accesului vizitatorilor nedoriți dacă hackerii nu găsesc un punct de intrare în sistemul dvs. prin care să-și poată executa atacul la fel de ușor.

persoană care se uită la un ecran de computer cu cod pe el

11. Nu utilizați „admin” ca nume de cont

Dacă doriți să vă protejați de faptul că altcineva vă accesează site-ul ghicind parole, încercați să utilizați un alt nume de utilizator, cum ar fi „admin” sau altceva care nu este atât de evident.

Dacă cineva încearcă să vă acceseze contul, îi va fi mult mai greu să ghicească parola și, de asemenea, este mai dificil pentru hackeri să exploateze metodele de forță brută dacă utilizați un nume de utilizator neobișnuit!

tasta de pe o tastatură cu amprenta digitală ca tastă

12. Rămâneți la curent cu noile vulnerabilități

Poate părea descurajant la început, dar a rămâne informat despre ce găuri de securitate găsesc alții vă va ajuta să vă mențineți sistemul în siguranță în cazul oricăror scurgeri.

Urmărirea tuturor acestor actualizări poate fi totuși dificilă – din fericire, există multe instrumente disponibile acum care fac această sarcină mai ușoară ca niciodată. Un astfel de instrument se numește „Debian Long Term Support”, care este conceput pentru a suporta mai multe versiuni ale sistemului de operare și toate tipurile de software – inclusiv servere web cu PHP.

persoană care zâmbește camerei în timp ce folosește un computer

Concluzie

În concluzie, acestea sunt doar câteva dintre cele mai bune practici de securitate pe care le puteți aplica site-ului dvs. web pentru a-l păstra în siguranță. Nu este întotdeauna ușor, dar dacă îți iei ceva timp pentru a depune efort, atunci vei fi răsplătit cu o prezență online care este mai puțin probabil să fie piratată!