Veiligheid mbt uploaden
Voor een systeem moet het mogelijk zijn om bestanden te kunnen uploaden. Echter gaat het hier niet alleen om Afbeeldingen, maar het bestand kan eigenlijk van alles zijn.
Nu zat ik even te kijken op het internet over hoe je nu controleert van wat een bestand nu echt inhoud. Ik wil natuurlijk dat bestanden zoals php, js etc etc niet op de server hebben.
Mijn vraag is, heeft iemand wat leesvoer, links, php functies etc etc die de beveiliging van het uploaden beter maakt?
Ik heb het Mine principe etc er al in zitten, maar dat kan toch niet alles zijn?
Groet.
Nu zat ik even te kijken op het internet over hoe je nu controleert van wat een bestand nu echt inhoud. Ik wil natuurlijk dat bestanden zoals php, js etc etc niet op de server hebben.
Mijn vraag is, heeft iemand wat leesvoer, links, php functies etc etc die de beveiliging van het uploaden beter maakt?
Ik heb het Mine principe etc er al in zitten, maar dat kan toch niet alles zijn?
Groet.
Gewijzigd op 15/05/2010 19:25:41 door Synaps Framework
Gesponsorde koppelingen:
Ik zou eens gaan kijken naar wat upload classes, zoals deze bijvoorbeeld.
Mime is niet te vertrouwen, als je daar alleen op checkt ben je verkeerd bezig. In principe kan checken op naam al voldoende zijn (of de bestanden gewoon hernoemen). Is best wel veel leesvoer over dit te vinden op het internet code injection.
@Henk PHP, heb je gezien naar welke bende jij mij verwezen hebt?
@Karl, de bestanden worden sowieso hernoemt en niet in de root geplaatst. Ik weet ook dat Mime niet te vertrouwen is, waarom ik ook hier om advies vraag. Ik dacht dat Mine alleen wel een toevoeging had.
Ik google anders nog wel even door =]
@Karl, de bestanden worden sowieso hernoemt en niet in de root geplaatst. Ik weet ook dat Mime niet te vertrouwen is, waarom ik ook hier om advies vraag. Ik dacht dat Mine alleen wel een toevoeging had.
Ik google anders nog wel even door =]
Van het bestand wat ge-upload wordt eigenlijk alles door de browser geset (naam, grootte en mime type). Dat kan dus door de gebruiker gemanipuleerd worden.
Als je alleen op mime checkt, dan ben je dus slecht bezig, want de gebruiker kan een php bestand uploaden met mime type van een plaatje.
Wat is er mis met die 'bende'? Die is véél beter gedocumenteerd dan die troep van jouw.
Als je alleen op mime checkt, dan ben je dus slecht bezig, want de gebruiker kan een php bestand uploaden met mime type van een plaatje.
Wat is er mis met die 'bende'? Die is véél beter gedocumenteerd dan die troep van jouw.
Wat ik nu heb:
- htaccess zorgen dan acces denied staat op de upload map
- controleren op de map waarin je gaat uploaden geen rechten heeft tot uitvoeren en schrijven.
- Bestanden hernoemen, zodat een kwaadwillige sowieso het bestandsnaam niet weet.
- extensies zoals php, phtml, php4 etc etc weigeren zover het kan.
- als de extensie doet geloven dat het een afbeelding is, de maten opvragen. Hiermee proberen afbeeldingen die toch geen afbeeldingen zijn te onderscheppen.
Verder nog ideeen of truukjes die worden toegepast?
- htaccess zorgen dan acces denied staat op de upload map
- controleren op de map waarin je gaat uploaden geen rechten heeft tot uitvoeren en schrijven.
- Bestanden hernoemen, zodat een kwaadwillige sowieso het bestandsnaam niet weet.
- extensies zoals php, phtml, php4 etc etc weigeren zover het kan.
- als de extensie doet geloven dat het een afbeelding is, de maten opvragen. Hiermee proberen afbeeldingen die toch geen afbeeldingen zijn te onderscheppen.
Verder nog ideeen of truukjes die worden toegepast?
Gewijzigd op 15/05/2010 20:27:49 door Synaps Framework
lege file onderscheppen?
Ik kijk dmv van explode() wat er achter de laatste punt staat. Dan zit je toch altijd goed?
Voor foto's kan je ook exif_imagetype gebruiken..
Als je er voor zorgt dat de bestanden in een map komen die niet van buitenaf bereikbaar is dan kun je de inhoud weer via php aan de gebruiker geven. Daarnaast controleren of de mimetype klopt met de extensie en je bent al heel problemen kwijt.
Het is vooral belangrijk dat je niks "uitvoert" van wat je aangeboden krijgt.
En een virusscanner die het meteen even controleert scheelt weer een hoop voor de mensen die de bestanden weer downloaden.
Het is vooral belangrijk dat je niks "uitvoert" van wat je aangeboden krijgt.
En een virusscanner die het meteen even controleert scheelt weer een hoop voor de mensen die de bestanden weer downloaden.



