Avatar billede saison Nybegynder
21. april 2004 - 12:27 Der er 6 kommentarer og
2 løsninger

Sikkerhed ved billedupload

Jeg har en funktion, hvor folk kan uploade billede på en side. For at sikre at der ikke uploades andet end billederne, har jeg lavet en forespørgsel, der sikrer at filerne ender på jpg eller gif og at de ikke fylder mere end 100kb. Men man kan jo lave filnavnet om på f.eks. en virus og dermed uploade den. Mit spørgsmål er så, om virussen kan bruges, når den er af et forkert filnavn, eller om den bare, når jeg går ind på min 'vis billede' side, viser at den ikke kan åbne billedet og der ikke sker mere...
Avatar billede bufferzone Praktikant
21. april 2004 - 12:32 #1
teoretisk kan det godt lade sig gøre, men det ville kræve kraftig modifikation af koden, da gif og jpg ikke umiddelbart er exekverbar kode. Det ville kræve at virusen blev kodet til at sprede sig gennem billedbehandlingsprogrammer. Jeg mener ikke deter realistisk at forestille sig at de skulle ske
Avatar billede riversen Nybegynder
21. april 2004 - 12:33 #2
du kan bruge http://dk.php.net/manual/en/function.exif-imagetype.php så slipper de ikke igennem. Viruset er skadesløst, hvis det ikke kan aktiveres på serveren. Og det kan en gif mig bekendt ikke :-). Et billedprogram ekserkverer ikke filen men læser den blot.
Avatar billede fangel Nybegynder
21. april 2004 - 13:34 #3
riversen -> har selv brugt exif_imagetype i et script jeg har lavet (thumbnail generering) - MEN, det er meget få steder hvor exif-funktionerne er compilet med i PHP, da de ikke er i standard lib. - getimagesize() er dog en standard (gd?) funktion, og returenere også image-type...

Morten
Avatar billede coderdk Praktikant
21. april 2004 - 16:29 #4
brug getimagesize() - hvis den fejler er det ikke et billede ;)
Avatar billede riversen Nybegynder
21. april 2004 - 16:52 #5
dea_pg: det ved jeg, men i mit link linkes der også til getimagesize... exif er noget hurtigere som der er skrevet... derfor linker jeg til den. Virker det ene ikke, er der link til det andet.
Avatar billede raz0 Nybegynder
21. april 2004 - 22:23 #6
Det er noget bedre at tjekke filendelsen end det er bare at tjekke MIME typen, som getimagesize() og exif_imagetype() ser ud til at gøre. Man kan meget nemt indsætte de få bytes i starten af en random.exe fil og så uploade den uden problemer.

Altså; At tjekke filendelsen burde være nok, men for en sikkerheds skyld kan du også tjekke MIME typen med en af de ovennævnte funktioner.
Avatar billede riversen Nybegynder
21. april 2004 - 22:26 #7
raz0: men er det så en exe fil? I think not... og dermed ikke ekserkverbar... eller tager jeg fejl?
Avatar billede raz0 Nybegynder
21. april 2004 - 22:30 #8
Man kan stadig godt konstruere den så den er eksekverbar. Det vil dog ikke umiddelbart være muligt at få en eksekveret på serveren, ikke med mindre der er andre sikkerhedshuller i scriptet der tillader det.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester