php bestanden uploaden
Hallo allemaal,
Ik vroeg me af in hoeverre het mogelijk isj PHP bestanden te uploaden. En nu weet ik wel dat het mogelijk is, maar ik bedoel, in hoeverre dit veilig kan. Kan dit? Zoja, wat moet er allemaal gebeuren om dit mogelijk te maken?
groet,
Merijn
Ik vroeg me af in hoeverre het mogelijk isj PHP bestanden te uploaden. En nu weet ik wel dat het mogelijk is, maar ik bedoel, in hoeverre dit veilig kan. Kan dit? Zoja, wat moet er allemaal gebeuren om dit mogelijk te maken?
groet,
Merijn
Gesponsorde koppelingen:
Hoe bedoel je uploaden? Wie mag het doen? Met welk doel?
In principe wil je niet dat er php bestanden ge-upload kunnen worden, aangezien je server dan zo misbruikt kan worden.
In principe wil je niet dat er php bestanden ge-upload kunnen worden, aangezien je server dan zo misbruikt kan worden.
Ja precies! Met die insteek zit ik ook, echter, het moet een soort van project deling worden waarin bestanden met leden van je groep kunnen worden uitgewisseld. Hierin moeten dus ook PHP bestanden gedeeld kunnen worden.
Dus nu vraag ik mij af, in hoeverre is dit mogelijk? Dus zonder dat er malafide scripts geupload kunnen worden. Ik dacht zelf misschien file openen en er gewoon
<pre> tags omheen zetten en opslaan als .html en wanneer de aanroep is, converteren naar de originele file.
Maar ik weet niet in hoeverre dit mogelijk is.. Vandaar dat ik het hier in de groep gooi.
Alvast bedankt Karl voor het duidelijk schetsen van de situatie!
Dus nu vraag ik mij af, in hoeverre is dit mogelijk? Dus zonder dat er malafide scripts geupload kunnen worden. Ik dacht zelf misschien file openen en er gewoon
<pre> tags omheen zetten en opslaan als .html en wanneer de aanroep is, converteren naar de originele file.
Maar ik weet niet in hoeverre dit mogelijk is.. Vandaar dat ik het hier in de groep gooi.
Alvast bedankt Karl voor het duidelijk schetsen van de situatie!
Alleen rar & zip bestanden toelaten voor het uploaden? Dat de gebruiker dan zelf het bestand op zijn computer uitpakt als er bestanden worden uit gewisseld?
Gebruik je dan geen svn / cvs o.i.d.? Dat lijkt mij voor zoiets veel handiger. Daar heb je ook allerlei mogelijkheden in, die met het web gecombineerd / gekoppeld kunnen worden.
Ja hoor, dat kan, maar dat zoek ik niet. Ik wil geen omweg creeren met extra stappen die ondernomen moeten worden. Vandaar ook de vraag.
In principe vang ik allerlei soorten documenten af op zowel mime als extensie.
Momenteel zijn dat er zo`n 50 types, maar PHP vormt ook een wezenlijk onderdeel voor dit project en dat moet ook afgevangen worden.
@karl; heb ik ook aan zitten denken, en er komt ook een soort van 'repository' in, maar het gaat juist om het hele overzicht van een project. Dus zowel documenten die gedeeld kunnen worden, alsook agenda punten opstellen voor je groep en een todo lijst die leden kunnen aanvullen en afvinken.
En er komt een soort van uren registratie systeem in waarin bijgehouden kan worden hoeveel uur iemand aan een bepaald project heeft gewerkt. ( dit is voor later, omdat ik nog niet echt een beeld heb bij het daadwerkelijk registreren)
Dus vandaar :)
In principe vang ik allerlei soorten documenten af op zowel mime als extensie.
Momenteel zijn dat er zo`n 50 types, maar PHP vormt ook een wezenlijk onderdeel voor dit project en dat moet ook afgevangen worden.
@karl; heb ik ook aan zitten denken, en er komt ook een soort van 'repository' in, maar het gaat juist om het hele overzicht van een project. Dus zowel documenten die gedeeld kunnen worden, alsook agenda punten opstellen voor je groep en een todo lijst die leden kunnen aanvullen en afvinken.
En er komt een soort van uren registratie systeem in waarin bijgehouden kan worden hoeveel uur iemand aan een bepaald project heeft gewerkt. ( dit is voor later, omdat ik nog niet echt een beeld heb bij het daadwerkelijk registreren)
Dus vandaar :)
opslaan als .phps lijkt me dan wel voldoende :)
of een svn gebruiken idd..
of een svn gebruiken idd..
Ja die SVN laat ik achterwege. Is het mogelijk dat er tijdens het uploaden het bestand geconverteerd wordt naar phps? Zonder dat er verkeerde mime types of iets dergelijks veranderen?
Merijn schreef op 12.10.2009 15:19:
@karl; heb ik ook aan zitten denken, en er komt ook een soort van 'repository' in, maar het gaat juist om het hele overzicht van een project. Dus zowel documenten die gedeeld kunnen worden, alsook agenda punten opstellen voor je groep en een todo lijst die leden kunnen aanvullen en afvinken.
En er komt een soort van uren registratie systeem in waarin bijgehouden kan worden hoeveel uur iemand aan een bepaald project heeft gewerkt. ( dit is voor later, omdat ik nog niet echt een beeld heb bij het daadwerkelijk registreren)
En er komt een soort van uren registratie systeem in waarin bijgehouden kan worden hoeveel uur iemand aan een bepaald project heeft gewerkt. ( dit is voor later, omdat ik nog niet echt een beeld heb bij het daadwerkelijk registreren)
Naja, dat valt prima te combineren met svn o.i.d.
Merijn schreef op 12.10.2009 15:19:
In principe vang ik allerlei soorten documenten af op zowel mime als extensie.
Momenteel zijn dat er zo`n 50 types, maar PHP vormt ook een wezenlijk onderdeel voor dit project en dat moet ook afgevangen worden.
Momenteel zijn dat er zo`n 50 types, maar PHP vormt ook een wezenlijk onderdeel voor dit project en dat moet ook afgevangen worden.
Hoe doe je dat? Gewoon kijken wat $_FILES zegt? Dat is niet veilig, aangezien je dan de headers zo kan aanpassen.
@karl;
Ja ik controleer de FILES, maar ik open het bestand ook, om te kijken of de eerste paar regels overeen komen met het te verwachten MIME type. Daarnaast controleer ik de extensie en als alle 3 true terug geven, mag het door.
Maar dat is een vrij lang script geworden, dus ik moet die nog even onder de loep nemen en wss in een class gooien... Maar dat is voor latere zorg. Het werkt goed.
en hoe bedoel je, dat valt te combineren? Je bedoelt dat elke project een eigen repository krijgt? Dan nog, die repository staat ook op een server, dus kun je alsnog malafide scripts uitvoeren...
Ja ik controleer de FILES, maar ik open het bestand ook, om te kijken of de eerste paar regels overeen komen met het te verwachten MIME type. Daarnaast controleer ik de extensie en als alle 3 true terug geven, mag het door.
Maar dat is een vrij lang script geworden, dus ik moet die nog even onder de loep nemen en wss in een class gooien... Maar dat is voor latere zorg. Het werkt goed.
en hoe bedoel je, dat valt te combineren? Je bedoelt dat elke project een eigen repository krijgt? Dan nog, die repository staat ook op een server, dus kun je alsnog malafide scripts uitvoeren...
een htaccess die elke uitvoer van scripts verbied ofzo?
en een php naar phps 'converteren' is gewoon opslaan als .phps niets moeilijk aan dus..
en een php naar phps 'converteren' is gewoon opslaan als .phps niets moeilijk aan dus..
Dat van de htacces is misschien wel een idee !!!
<root>
<projectmap>
En dan alle scripts binnen root uitschakelen.. Zou dit werken, en als extra maatregel opslaan als .phps?
<root>
<projectmap>
En dan alle scripts binnen root uitschakelen.. Zou dit werken, en als extra maatregel opslaan als .phps?
Je kunt inderdaad gewoon als regel instellen met .htaccess dat alle php bestanden gedownload moeten worden ipv gerunned toch? Net zoals je bij bijvoorbeeld pdf bestanden kan doen.
Kan iemand dit bevestigen? Dat zou namelijk wel handig zijn :D
Laat gewoon alleen phps toe lijkt me 't makkelijkst. Dat de gebruiker even de naam moet wijzigen en er een s achter moet zetten, lijkt me niet een hele omweg.
Ja dat kan wel, maar het gaat erom dat ik juist wil dat het allemaal automatisch gebeurt. Maar goed, ik denk ik dat ik het maar automatisch in een zip file zet. Dan kunnen ze het downloaden en moeten ze het zelf maar uitpakken.
Of jullie moeten een methode weten dat je met htacces script access kan verbieden. Ik denk dat het wel bestaat, maar wie weet het antwoord??
Of jullie moeten een methode weten dat je met htacces script access kan verbieden. Ik denk dat het wel bestaat, maar wie weet het antwoord??
GIT :D
Het is mogelijk om met htaccess aan te geven welk mime type bij welk bestand hoort. Dit kan wel uitgeschakeld zijn in de apache config.
Zie bijvoorbeeld dit en dit.
Zie bijvoorbeeld dit en dit.
bedankt Karl! Dat is nou handig! octetstream! Ik kom hem zo vaak tegen, maar heb er nooit echt bij stil gestaan waar het echt voor stond. Zeker in het geval van indd. mp3 swf en allerlei andere media bestanden.
Ik zit er aan te denken een soort van auth op die map te zetten met security op file group, en dan alle media binnen die mappen een header.mine mee geven van octetstream.
Ik laat hier nog wel weten hoe het afloopt!
Ik zit er aan te denken een soort van auth op die map te zetten met security op file group, en dan alle media binnen die mappen een header.mine mee geven van octetstream.
Ik laat hier nog wel weten hoe het afloopt!
Het gaat er toch alleen om dat mensen PHP code uit kunnen wisselen? Sla het gewoon als TEXT op in je DB en laat het zien via htmlentities.
Nee het gaat erom dat ze bestanden kunnen uitwisselen. Ik Heb inmiddels ook gekeken naar text in de db te stoppen, zodat je kunt inzien hoe de code eruitziet, echter moet het bestand ook zeker gewoon downloadbaar zijn.
Maar zoals ik al zei, het moet even aangekeken worden, hoe het loopt, en of het lukt met die octetstream mimes.
Maar zoals ik al zei, het moet even aangekeken worden, hoe het loopt, en of het lukt met die octetstream mimes.



