login  Naam:   Wachtwoord: 
Registreer je!
 Forum

File inclusion

Offline blub - 22/01/2008 23:43 (laatste wijziging 22/01/2008 23:44)
Avatar van blubNieuw lid
  1. include "../". $_GET['bestand'] .".txt";


ben ik op deze manier veilig voor file inclusion?

11 antwoorden

Gesponsorde links
Offline vinTage - 23/01/2008 00:03
Avatar van vinTage Nieuw lid Je gaat een map omhoog en je claimt dat het een txt moet zijn, dat lijkt mij wel safe (maar ik ben geen (h)(cr)acker 
Offline Sitebase - 23/01/2008 00:17
Avatar van Sitebase PHP expert Dit is nog altijd niet echt veilig. Hiermee zou het bijvoorbeeld mogelijk zijn het passwd bestand van de server te lezen. Je kan best een array maken met de waardes die $_GET['bestand'] mag hebben. Dan eerst een controle doen of de waarde van $_GET['bestand'] voorkomt in de array, als dat zo is dan pas de include doen.
Offline Aar - 23/01/2008 00:27 (laatste wijziging 23/01/2008 00:27)
Avatar van Aar PHP interesse En dat passwoord staat in een .txt bestand?
Ik geloof dat dit op UNIX bakken bestanden zonder extentie waren, en met een punt beginnen (.htacces .htpasswd .users etc.).

TXT is gewoon een manier om data in plain-text op te slaan, geweldige man die hier passworden in frot.

Maar ff ontopic over de beveiligng:
Gebruik anders een file_exist() eroverheen om te controleren of het wel bestaat, en zorg dat base_restriction in PHP aan staat. Anders kan je vrolijk buiten je webroot komen, wat anderen niet graag zien.

Dit heb ik ooit een keer bij een webhoster ontdekt 6 jaar terug :x...
Offline ikkedikke - 23/01/2008 11:55
Avatar van ikkedikke PHP expert Als je je bedenkt dat je in principe alle textbestanden op de server kan inladen en jij acht dat veilig dan is het goed. in jouw geval zou ik nog restricties stellen aan het aantal mappen dat je terug kan oid.
Offline Sitebase - 23/01/2008 12:33
Avatar van Sitebase PHP expert @Aar
file_exist() gaat niets doen aan de veiligheid van je applicatie.
Offline Wim - 23/01/2008 12:57
Avatar van Wim Crew algemeen
WMP schreef:
@Aar
file_exist() gaat niets doen aan de veiligheid van je applicatie.


het verhinderd iig toch dat mensen externe bestanden weten te includen...
Offline blub - 23/01/2008 13:46 (laatste wijziging 23/01/2008 13:47)
Avatar van blub Nieuw lid
  1. include " $_GET['bestand'] .".txt";


als ik zo doe dan kan ik www.hierdewebsite.nl?bestand=www.badserver.nl/badfile.php doen en dan kan het fout gaan! maar omdat ik ../ ervoor zet kan je toch geen externe files aanroepen????
Offline Sitebase - 23/01/2008 17:53
Avatar van Sitebase PHP expert Blub heeft gelijk.
Offline blub - 24/01/2008 08:34
Avatar van blub Nieuw lid
WMP schreef:
Blub heeft gelijk.


Hoe bedoel je?
Offline cloudstrife - 24/01/2008 11:45
Avatar van cloudstrife PHP beginner Dat je gelijk hebt dat je geen externe bestanden kan aanroepen door dat ../ ervoor staat. Overigens zou het wel wat makkelijk zijn om zo aan systeembestanden te geraken, dit is volgens mij op die manier niet mogelijk. In theorie misschien wel omdat je nog wat extra van paden kan meegeven maar een UNIX machine heeft nog altijd een goed rechtensysteem dus ik denk niet dat je het zomaar gaat kunnen includen en uitlezen. Een webserver gaat overigens ook nooit als root draaien, zou nogal dom zijn...
Offline Sitebase - 24/01/2008 13:12
Avatar van Sitebase PHP expert Ook al staat de .txt erachter, toch is het mogelijk om systeembestanden te includen. Dit met behulp van een nullbyte. Het zal niet altijd werken maak het werkt toch vrij vaak voor.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.199s