Sikker filupload i PHP

Tags:    php

Hej,

Jeg er ved at udvikle et system der indeholder filupload. Hvis jeg fra begyndelsen sætter min upload-mappe til 0777 (alle rettigheder til alle), hvilke sikkerhedsrisikoer har jeg så udsat mig selv for?

Kan brugere potentielt gå ind og ændre og slette filer i mappen?



6 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Når du sætter rettighederne er det til brugerne på den server din hjemmeside er hosted fra. På sådan en server vil webserveren, mysql-serveren osv. have en bruger som de bliver kørt fra. Når du chmodder mappen til 777 betyder det blot at alle brugere på serveren har alle rettigheder til mappen.

Da en besøgende på din hjemmeside næppe har en bruger på serveren er det ikke et problem, men laver du en fejl i din php-kode kan det selvfølgelig godt være at man kan slette filerne.



Skal lige nævnes er der skal lukkes af for forskellige typer filer, særligt .php filer og .htaccess filer.



Når du sætter rettighederne er det til brugerne på den server din hjemmeside er hosted fra. På sådan en server vil webserveren, mysql-serveren osv. have en bruger som de bliver kørt fra. Når du chmodder mappen til 777 betyder det blot at alle brugere på serveren har alle rettigheder til mappen.

Da en besøgende på din hjemmeside næppe har en bruger på serveren er det ikke et problem, men laver du en fejl i din php-kode kan det selvfølgelig godt være at man kan slette filerne.


Så det kun hvis man kikser i sin PHP-upload kode der potentielt set kan ske noget? (~ det er ikke muligt for besøgende at smide en fil i mappen uden om PHP-scriptet?)



Så det kun hvis man kikser i sin PHP-upload kode der potentielt set kan ske noget? (~ det er ikke muligt for besøgende at smide en fil i mappen uden om PHP-scriptet?)


Jep, eller du på en anden måde laver en fejl i din php-kode så man får direkte adgang til serveren. Men så er din upload-mappe nok det mindste problem :P



Jep, eller du på en anden måde laver en fejl i din php-kode så man får direkte adgang til serveren. Men så er din upload-mappe nok det mindste problem :P


Super - takker for svaret :)



Skal lige nævnes er der skal lukkes af for forskellige typer filer, særligt .php filer og .htaccess filer.


Faktisk vil det bedste være at tjekke om den uploadede fil har den korrekte type (og stol ikke på MIME typen som sendes med uploadet), og ikke om filen har én af flere forkerte typer. F.eks. hvis det burde være et billede, så bør GD også kunne læse det, og hvis ikke det er tilfældet, så slet filen.



t