Cum să preveniți vulnerabilitățile de încărcare a fișierelor

Cum să preveniți vulnerabilitățile de încărcare a fișierelor
Cititorii ca tine ajută la sprijinirea MUO. Când efectuați o achiziție folosind link-uri de pe site-ul nostru, este posibil să câștigăm un comision de afiliat. Citeste mai mult.

Modulele de încărcare a fișierelor sunt una dintre cele mai slabe verigi din aplicațiile web. Orice greșeli făcute, chiar și cele pe care le considerați mici, ar putea duce la ca controlul serverului să cadă direct în mâinile unui atacator cibernetic. Din acest motiv, dezvoltatorii de software trebuie să cunoască cele mai frecvente greșeli și câteva metode de atac care pot apărea.





REALIZAREA VIDEOCLIPULUI ZILEI

Deci, ce este manipularea din partea clientului? Cum puteți combate acest lucru pentru a vă menține site-urile și utilizatorii în siguranță?





Ce este manipularea pe partea clientului?

Modificarea la nivelul clientului este conceptul de bază al atacurilor aplicațiilor web în ansamblu. Mai simplu spus, înseamnă că nu mai poți avea încredere în niciuna dintre datele pe care le trimiți utilizatorului. În plus, manipularea la nivelul clientului este unul dintre fundamentele dezvoltării securizate a aplicațiilor. Dacă examinați modulul de încărcare a fișierelor cu care aveți de-a face și luați în considerare falsificarea din partea clientului, datele în care nu aveți încredere includ:





  • Numele fișierului încărcat.
  • Tipul de conținut al fișierului încărcat.

Aceste două elemente sunt unde ai ocazia să faci lista albă ca dezvoltator de software. Datele de nume ale fișierului încărcat pot conține orice cu manipulare pe partea clientului. Cu datele Content-Type ale fișierului încărcat, chiar dacă atacatorul încarcă un fișier .exe, acest fișier poate apărea ca imagine/jpeg în sistem.

Extensie de fișiere și Lista albă

 Verificarea extensiilor de fișiere încărcate în sistem

În timpul dezvoltării modulelor de încărcare a fișierelor, primul lucru de făcut este procesul de înscriere în lista albă pentru extensia de fișier . De exemplu, un utilizator dorește să încarce un fișier numit „muo.jpeg”. Trebuie să vă asigurați că această extensie de fișier pe care utilizatorul dorește să o încarce este .jpeg. Pentru aceasta, sistemul ar trebui să verifice fișierul încărcat și să vadă dacă este una dintre extensiile de fișiere permise. Pentru a înțelege cum puteți face acest lucru, examinați următorul cod PHP simplu:



$file_parts = pathinfo($filename);
switch($file_parts['extension'])
{
case "jpg":
break;

case "bat": // Or exe, dll, so, etc.
break;

case "":
case NULL: // No file extension
break;
}

Puteți face acest lucru cu un bloc de cod similar cu cel de mai sus sau puteți utiliza clasele și funcțiile oferite de framework-ul pe care îl utilizați.