Hoe Path Traversal voorkomen?

Status
Niet open voor verdere reacties.

alexanderinfo

Gebruiker
Lid geworden
24 mrt 2008
Berichten
95
Goedendag,

Ik wil onderstaand script beveiligen tegen path traversal middels validatie.

PHP:
<?

    $pagedir = "pages";

    if (!isset($_GET['page'])) {
        header("Location: ?page=welkom");
        exit;
    }

    $page = $_GET['page'];

    if (file_exists("$pagedir/$page")) {
        print file_get_contents("$pagedir/$page");
    }

ik heb het geprobeerd met de strpos functie, maar dan krijg ik een foutmelding dat de pagina niet kan laden.
 
Als dit bestand in jouw web-root staat en belangrijke documenten (database-instellingen) niet dan is er niets aan de hand, dan zou je een map omhoog moeten voor je bij iets kunt komen.

Welke situaties wil je vermijden?
 
het is voor een opdracht.
ik moet het script dusdanig aanpassen dat er geen path traversal mogelijk is.

dus het gebruik van "/", "\\" en ASCII vermijden.
 
Is het de bedoeling dat je een melding toont of het gewoon anders afgehandeld wordt?

Je zou eens naar str_replace() of preg_replace()/preg_match() kunnen kijken.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan