login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Bestandsbeveiliging

Offline Wijnand - 05/11/2013 15:25
Avatar van WijnandModerator Ik heb een vraag over bestandsbeveiliging.

Ik heb een pagina waar men (in principe iedereen die inlogt) plaatjes kan uploaden. Dit zit in een aparte map.

Om dit goed te laten werken heb ik dit nu op chmod 777 gezet (volle rechten), wat waarschijnlijk niet heel erg verstandig is qua beveiliging.

Nu mijn vraag: hoe zou je het rechten-gebeuren het beste kunnen regelen, zodat het veilig is om plaatjes te uploaden.

Extra informatie: in het upload script wordt op extensie gecontroleerd, en ook op bestandstype.

Ik ben benieuwd naar jullie ideeën.

3 antwoorden

Gesponsorde links
Offline Thomas - 05/11/2013 15:51
Avatar van Thomas Moderator Extensie en bestandstype (bedoel je hiermee het MIME-type in $_FILES[<filename>]['type']?) zijn niet echt betrouwbaar. Ik geloof dat de laatste gebaseerd is op wat de browser doorgeeft, en de browser geeft deze door op grond van... de extensie . Dus eigenlijk controleer je 2x hetzelfde .

Een andere eenvoudige controle die bij de meeste gangbare afbeeldingen werkt is een aanroep van getimagesize(). Als deze false retourneert heb je grote kans dat je niet met een afbeelding van doen hebt.

Een andere manier is via een library, bijvoorbeeld ImageMagick. Deze heeft methoden die ook controles uitvoert, bijvoorbeeld Imagick::identifyImage. Heb dit verder nooit gebruikt maar ik neem aan dat een library toegespitst op afbeeldingen hier wel chocola van kan maken (en anders false retourneert ).

Je bericht doet ook vermoeden dat afbeeldingen ook na upload beperkt toegankelijk dienen te zijn?
Offline Wijnand - 05/11/2013 15:57
Avatar van Wijnand Moderator FangorN, bedankt voor je antwoord. Maar het controleren van typen is niet mijn grootste zorg (al ga ik er even verder naar kijken), maar het probleem gaat specifiek over rechten.

Hoe kan ik de rechten veilig houden?

Citaat:
Je bericht doet ook vermoeden dat afbeeldingen ook na upload beperkt toegankelijk dienen te zijn?


Nee, je upload afbeeldingen (moet je voor ingelogd zijn) en de resultaten zijn dat iedereen die kan zien (zoals bv een profielfoto).
Offline Thomas - 05/11/2013 16:42
Avatar van Thomas Moderator Hangt van een heleboel dingen af. Ben geen beveiligingsexpert, maar als het shared hosting betreft is 755 mogelijk beter. Maar het maakt blijkbaar weer niets uit als alle accounts PHP onder dezelfde user draaien. Ik neem aan dat je open_basedir gebruikt? Dan zit je wss wel goed. Maar probeer het voor elkaar te krijgen met een zo laag mogelijk getal.

Dit alles is schaamteloos overgenomen van het laatste bericht in deze thread: https://drupal.org/node/39887. Wat daar wordt gezegd klinkt doordacht.

Je zegt "om dit goed te laten werken". Ik weet uit het verleden wel dat dit altijd een hoop geklooi is, maar mogelijk helpt het als je PHP ook de directory waarin de plaatjes staan laat aanmaken?
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.18s