Laravel - предотвращение обхода пути - PullRequest
0 голосов
/ 16 октября 2019

В моем приложении Laravel я использую пакет под названием Laravel Filemanager . Одна функция этого пакета позволяет вам загружать файлы и выглядит следующим образом:

public function getDownload()
{
    return response()->download($this->lfm->setName(request('file'))->path('absolute'));
}

, который вызывается по следующему маршруту

Route::get('/download', [
    'uses' => 'DownloadController@getDownload',
    'as' => 'getDownload',
]);

Все это выглядит хорошо, но есть проблема: выможет сделать что-то вроде этого

https://example.com/laravel-filemanager/download?working_dir=%2Fpentest&type=Files&file=../../../../../../../../../../../../../../../../etc/hosts

По существу, разрешить любому пользователю проходить через каталоги, пока он не достигнет корня основного веб-сервера.

Мой вопрос, как быВ этом случае я защищаю себя?

Я поставил проблему на Github, но мне было интересно, была ли это ошибка Laravel или неправильная конфигурация сервера с моей стороны?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...