Beste mede-forumleden.
Ik ben bezig met een soort verkenner te maken. Met behulp van file_exists en new DirectoryIterator('./');. Hierbij heb ik twee problemen. Een probleem dat betrekking heeft op veiligheid, en een ander probleem wat betrekking heeft op het gebruik.
Probleem 1:
Ik wil de verkenner dusdanig maken zodat je met enkel een bestand, alle bestaande folders kan verkennen. Het gebruikte bestand heet index.php. Ik doe dit met behulp van $_GET['p'];. De url ziet er dan zo uit: index.php?p=/htdocs/map.
Wat gebeurd er nu als ik de volgende url gebruik?:
index.php?p=/../../../home/koen/Desktop
Juist! Je kan alle bestanden zien die ik op mijn bereaublad heb. Gelukkig maar dat je de bestanden niet kan bekijken en/of koppieeren.
Hoe kan ik dit eventueel beter beveiligen tegen dit soort dingen?
Vraag 2:
Als de url nu index.php?p=/htdocs/kaas, dan wordt de url die behoort bij de koppeling .. index.php?p=/htdocs/kaas/... Wanneer ik hierop klik, dan wordt de locatie htdocs. Op deze manier wordt de url langer, en ;anger, en dus onoverzichterlijker.
Ik wil dus eventueel met preg_replace de url rewriten. Dus:
Voor: index.php?p=htdocs/kaas
Koppeling: ..
Na: index.php?p=hdocs/kaas/..
Dit moet worden:
Voor: index.php?p=/htdocs/kaas
Koppeling: ..
Na: index.php?p=/hdocs
---
Het script is te vinden op:
http://83.86.183.185/
[EDIT]Wegens onze goede vrienden van Casema internet van 0,01KB per minuut. Daarom tap ik af van de buren waardoor de server down is.
http://nn-tutorials.nl/Bestanden/
[/edit]
Uit veiligheid heb ik het aangepast dat je tijdelijk $_GET['p'] niet meer kan gebruiken.
Ik hoop zo duidelijk genoeg te zijn geweest, en dat iemand of meerdere iemanden me kunnen helpen.
Met vriendelijke groet,
Vlerk
912 views