У меня есть проект, который требует , используя пользовательский ввод для включения файлов в скрипт PHP. Пользовательский ввод может быть любым относительным URL (например: /folder1/folder2/file.jpg, / folder1 / folder2 /)
Будет ли следующее регулярное выражение для проверки правильности ввода:
if(preg_match('/^(\/[-_a-zA-Z0-9]+)+\/?$/D', $_GET['loc']))
{
//Location is good!
}
Очевидно, я стремлюсь избежать любых локальных атак на включение файлов. Прежде чем я получу предложения из белого списка вместо того, чтобы включать файл, как указано выше, у меня есть тысячи файлов, поэтому оператор switch или if / else не сработает.