Cele mai bune sfaturi pentru securitatea Laravel
Publicat: 2021-12-10Laravel este unul dintre cele mai populare cadre pentru PHP. Are o mulțime de caracteristici grozave care facilitează dezvoltarea aplicațiilor web. Cu toate acestea, are și partea sa de vulnerabilități de securitate de care ar trebui să fii conștient. Această postare de blog va discuta câteva dintre cele mai bune practici pentru a vă menține aplicația în siguranță și pentru a vă asigura că datele clientului nu sunt compromise.
Pe o notă secundară, dacă lucrați mult cu PHP, consultați aceste 10 cele mai bune scanere de securitate pentru coduri PHP!
Cele mai bune sfaturi pentru securitatea Laravel
Voi vorbi acum despre câteva dintre cele mai bune practici pe care le puteți folosi pentru a vă asigura aplicația Laravel.
Ține-l la zi
În primul rând, asigurați-vă întotdeauna că vă păstrați software-ul actualizat. Aceasta include cadrul în sine și oricare dintre bibliotecile terțe pe care le utilizați. Noi vulnerabilități de securitate sunt descoperite tot timpul, așa că este important să vă asigurați că sunteți conștient de ce vulnerabilități sunt remediate și când. Vă poate scuti de multe dureri de cap dacă există o problemă cu securitatea dvs. în viitor!
Reduceți vulnerabilitățile Laravel din CSRF
CSRF (Cross-Site Request Forgery) apare atunci când un atacator păcălește utilizatorul să ia măsuri asupra unei aplicații web în care este deja autentificat. Scopul este să vă păcăliți utilizatorii (sau roboții automati) să trimită acțiuni ca și cum ar fi ei în locul dvs.
O modalitate obișnuită de acest lucru, de exemplu, ar fi utilizarea platformelor de e-mail sau de mesagerie care acceptă încorporarea imaginilor. Aceste imagini vor conține date de formular ascunse generate cu JavaScript și trimise automat fără ca utilizatorul să știe ce tocmai s-a întâmplat!
Sistemul de autentificare Laravel
Sistemul de autentificare al lui Laravel este unul dintre punctele sale forte. Oferă o modalitate ușoară de a autentifica utilizatorii și de a gestiona permisiunile, dar are și unele deficiențe de securitate. Una dintre principalele probleme ale sistemului de autentificare al lui Laravel este că implicit nu invalidează sesiunile atunci când un utilizator se deconectează. Acest lucru poate fi remediat cu ușurință setând timeout-ul sesiunii la 0 în fișierul .env.
Protecție împotriva XSS – Prevenirea cross-site Scripting
Aceasta este o vulnerabilitate care permite atacatorilor să execute cod de script în contextul aplicației dvs. Acest lucru poate duce la deturnarea sesiunii, atacuri de phishing și multe altele! XSS apare atunci când intrarea utilizatorului este inclusă într-o pagină HTML fără a fi validată sau codificată mai întâi.
Cel mai bun mod de a preveni acest lucru este folosirea sintaxei triple acolade a motorului de modelare Laravel Blade, acolo unde este posibil: {{{ }}}. Deoarece a fost implementat ca o caracteristică de securitate în mod implicit, ar trebui să o utilizați peste tot în loc să faceți ecou la intrarea utilizatorului direct din orice fișier de rută/controller, deoarece acestea ar putea fi vulnerabile.
Injecție SQL
Injecția SQL este o vulnerabilitate care permite atacatorilor să execute instrucțiuni SQL în contextul aplicației dvs. Acest lucru poate duce la pierderi de date, informații furate și multe altele! Cel mai bun mod de a preveni acest lucru este prin utilizarea declarațiilor pregătite. Laravel oferă o modalitate ușoară de a face acest lucru cu ajutorul generatorului său de interogări. Ar trebui să utilizați interogări parametrizate cât mai mult posibil în aplicația dvs.
Filtrați și validați toate datele
Una dintre cele mai comune vulnerabilități pe care le fac dezvoltatorii este nevalidarea intrărilor utilizatorului. Acest lucru poate duce la lucruri precum atacuri de injecție, cum ar fi scripturi încrucișate (XSS). Laravel oferă o modalitate simplă de a filtra și valida toate datele care vin în aplicația dvs. prin filtre pentru diferite tipuri de informații.
Invalidați sesiunile
Există câteva modalități de a vă asigura securitatea aplicației dvs. Laravel și unul dintre cele mai importante lucruri pe care le puteți face este să gestionați sesiunile. Cadrul unei aplicații ar trebui protejat cu orice preț, deoarece orice schimbare majoră a stării acesteia o poate lăsa vulnerabilă la factorii de atac.
Prin distrugerea și invalidarea automată a sesiunii dvs., dezvoltatorii Laravel Security se asigură că sunteți în siguranță.
Stocați parola folosind funcții de hashing
Când creați un nou cont de utilizator în Laravel, cadrul va folosi Bcrypt pentru a vă hash parola înainte de a o stoca. Funcțiile hashing sunt concepute astfel încât să fie foarte dificil de inversat, ceea ce le face grozave pentru parole, deoarece utilizatorii nu trebuie să-și amintească șiruri aleatorii de caractere.

Verificați configurația SSL/TLS
Certificatele SSL sunt, de asemenea, importante pentru securitatea aplicației dvs. Dacă utilizați o versiune mai veche, cel mai bine este să actualizați, astfel încât să puteți oferi o conexiune sigură și securizată pe ambele părți (browser-server).
Cerere de limită de tarif
Limitarea ratei este o modalitate simplă și eficientă de a preveni utilizatorii rău intenționați să vă supraîncărce aplicația cu solicitări. Laravel oferă în acest scop un limitator de rată ușor de utilizat, pe care îl poți atașa oricărei solicitări în cazul în care atinge un anumit prag de accesări pe minut.
Înregistrează totul
Este întotdeauna o idee bună să înregistrați tot ce se întâmplă în aplicația dvs., inclusiv erorile. Acest lucru vă poate ajuta să remediați problemele și, de asemenea, să oferiți informații valoroase dacă ceva nu merge bine. Laravel facilitează înregistrarea întregii activități a aplicației dvs. cu funcționalitatea de înregistrare încorporată.
Trimiteți toate anteturile de securitate disponibile
De asemenea, puteți îmbunătăți securitatea aplicației dvs. Laravel, trimițând toate anteturile de securitate disponibile. Acestea sunt anteturi care oferă informații despre aplicația dvs. și ajută la protejarea acesteia de diverse atacuri. Laravel oferă o modalitate de a trimite cu ușurință aceste anteturi cu middleware-ul său încorporat.
Opțiuni X-Frame
Pe lângă trimiterea tuturor anteturilor de securitate disponibile, puteți îmbunătăți și securitatea aplicației dvs. împiedicând injectarea acesteia în alte site-uri. Acest lucru se face prin ceva numit opțiune X-Frame - un antet care împiedică plasarea site-ului dvs. în alt site iframe.
X-XSS-Protecție
Un alt antet de securitate important de inclus este X-XSS-Protection. Acest lucru împiedică aplicația dvs. să fie deschisă la atacuri de scripting între site-uri, care sunt unele dintre cele mai comune de pe web în prezent.
HSTS
Antetul HSTS este o altă modalitate excelentă de a îmbunătăți securitatea aplicației dvs. Acest antet le spune browserelor că ar trebui să comunice cu site-ul dvs. numai printr-o conexiune securizată, ceea ce poate ajuta la protejarea împotriva atacurilor „man-in-the-middle”.
Politica de securitate a conținutului
Acest antet le spune browserelor ce tipuri de conținut ar trebui să permită încărcarea pe site-ul dvs., ajutând la protejarea împotriva unor lucruri precum scripturile între site-uri și alte atacuri rău intenționate.
X-Conținut-Tip-Opțiuni
Acest antet împiedică un browser să încerce să adulmece tipul MIME al unui fișier pe care îl conectați. Acest lucru poate ajuta la prevenirea unor lucruri precum atacurile bazate pe tip de conținut, care sunt utilizate în mod obișnuit de hackeri și infractorii cibernetici astăzi.
Aveți o politică de securitate a conținutului
Una dintre cele mai bune modalități de a îmbunătăți securitatea aplicației dvs. este să aveți o politică de securitate a conținutului. Acesta este un set de reguli care indică browserelor ce tipuri de conținut ar trebui să permită încărcarea pe site-ul dvs. Folosind o politică de securitate a conținutului, vă puteți proteja aplicația de multe tipuri diferite de atacuri.
Protecția cookie-urilor
Cookie-urile sunt o modalitate obișnuită prin care hackerii pot fura informații de la utilizatori. Vă puteți ajuta să vă protejați cookie-urile utilizând steagurile HttpOnly și Secure, care vor spune browserelor să nu permită accesul scripturilor la ele și, respectiv, să permită doar conexiuni securizate pentru preluarea lor.
Pachete de securitate Laravel
Următoarele sunt unele dintre cele mai bune pachete de securitate Laravel disponibile.
Laravel-ACL
Pachetul Laravel-ACL oferă o modalitate de a proteja metodele controlerului precum CRUD și rutele în aplicații, precum și de a vă asigura că aveți permisiunile potrivite cu controlul accesului bazat pe rol.
Laravel Security
Laravel Security asigură că baza dvs. de cod rămâne în siguranță împotriva atacurilor XSS cu funcțiile sale utile.
Componenta de securitate Laravel
Pentru a vă proteja activele delicate, aveți nevoie de un pachet care să aibă nucleul de securitate Laravel și Symfony. Acesta se va descurca bine!
Concluzie
În concluzie, există câteva bune practici pe care le puteți folosi pentru a vă asigura aplicația Laravel. Asigurați-vă că vă păstrați software-ul actualizat, reduceți vulnerabilitățile CSRF, protejați-vă împotriva atacurilor XSS și utilizați cât mai mult posibil declarațiile pregătite. Urmarea acestor sfaturi vă va ajuta să vă asigurați că datele clientului dvs. sunt sigure și securizate. Multumesc pentru lectura!
