В моем приложении 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 или неправильная конфигурация сервера с моей стороны?