Envío de variables para funciones de sistema de archivos PHP con envío de formulario

Estoy tratando de encontrar una manera segura de hacer lo siguiente:

Los usuarios introducen valor en el formulario html.Se envía el formulario.PHP utiliza el valor enviado como argumento para la función "scandir".

Mi teoría es incluir la lógica en el script php que prohíbe las rutas absolutas y requiere que el nombre del directorio incluya un cierto valor.

Mi preocupación es que un pirata informático podría usar mi formulario para enviar su propio valor y acceder a archivos confidenciales.

Esto es para un plugin de JQuery. No quiero que los usuarios tengan que modificar el archivo PHP.

¿Cómo se puede hackear el código de abajo?

<?php

$foo = $_POST["some_directory"];

//validate $foo

//make sure path to directory is relative
$foo_url_test  = parse_url($foo);
if (isset($foo_url_test['scheme']) || isset($foo_url_test['host'])) {
$foo = NULL;
}

//make sure the directory name contains 'bar123'
$foo_name_test = preg_split('_[\\\\/]_', $foo);
$foo_name_test = end($foo_name_test);
$foo_name_test = strpos($foo_name_test,'bar123');
if ($foo_name_test === false) {
$foo = NULL;
}

//make sure the path does not contain '..'
$foo_dot_dot_test = strpos($foo,'..');
if ($foo_dot_dot_test == TRUE || $foo_dot_dot_test === 0) {
$foo = NULL;
}

//get files
$files_array = scandir($foo);

?>

Respuestas a la pregunta(3)

Su respuesta a la pregunta