Загрузка всех файлов .php из папки - PullRequest
3 голосов
/ 14 апреля 2011

Я использую функцию для загрузки всех файлов в папке, которая выглядит так:

foreach (glob(ROOT ."path/*.app.php") as $file) { 
    $filename = basename($file, '.app.php');
    load_app($filename);
}

Теперь я подумал, что это может быть немного небезопасно, и я почти уверен, что читал что-то об этом зле. Но, думая об этом, я в конечном итоге думаю, что если кто-то может добавить файл в мою корневую папку, получая к нему доступ по FTP, то мои проблемы будут намного хуже, чем просто добавление файла. Не так ли?

Почему я должен избегать этого поведения? Есть ли для этого причины?

Ответы [ 2 ]

1 голос
/ 14 апреля 2011

При этом нет проблем с безопасностью.Я бы просто избегал этого из-за простоты и неопределенных проблем с производительностью.

Если бы кто-то смог добавить новые файлы в вашу корневую папку, он, скорее всего, также смог бы изменить существующие файлы.Так что, как вы говорите, в этом случае у вас будут гораздо худшие проблемы.(Таким образом, фиксированный список включаемых файлов не поможет в любом случае.)

Кстати.подход, который я использую для сценария PHP cron, который запускается через папку cron.d/ с перечисленными сценариями для выполнения.Ваш вариант использования библиотеки включает в себя несколько иное назначение, но я не вижу честных фактических проблем с этим.(Производительность, скорее всего, не измерима.)

1 голос
/ 14 апреля 2011

Вы указали именно ту причину, которая делает этот небезопасным : если файл .app.php помещен в вашу папку (будь то по ошибке или потому, что кто-то умышленно положил его там) , это будет интерпретировано.

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * .

...