Estoy implementando una secuencia de comandos de listado de directorios simple en PHP.Asegurar que una ruta definida por el usuario sea segura en PHP
Quiero asegurarme de que la ruta pasada es segura antes de abrir los identificadores de directorio y echo
ing willy-nilly.
$f = $_GET["f"];
if(! $f) {
$f = "/";
}
// make sure $f is safe
$farr = explode("/",$f);
$unsafe = false;
foreach($farr as $farre) {
// protect against directory traversal
if(strpos($farre,"..") != false) {
$unsafe = true;
break;
}
if(end($farr) != $farre) {
// make sure no dots are present (except after the last slash in the file path)
if(strpos($farre,".") != false) {
$unsafe = true;
break;
}
}
}
es esto suficiente para asegurarse una ruta enviada por el usuario es segura, o hay otras cosas que debería hacer para proteger contra el ataque?
Tiene sus variables activadas en el foreach() – Greg
: O Gracias por recoger eso ... –