Laravel Запретить прямой доступ к файлам через URL, но разрешить загрузку после входа в систему? - PullRequest
0 голосов
/ 14 ноября 2018

Я использую Laravel 5.3, apache и php 5.6, Мне нужно запретить прямой доступ к файлам через URL, но мне нужно скачать эти файлы после того, как пользователь вошел в систему через URL или общий запрос php, чтобы загрузить файл, я не использую Auth, я использую собственную процедуру входа в систему. Во-первых, возможно ли это сделать?
Я сохранил свои файлы в

project / public/uploads/ enjclientid‹/sample.txt

Я знаю, что хранить файлы в общедоступной папке вместо хранения в папке хранения - плохая практика, но проект изначально разрабатывался таким образом, инам нужно преодолеть прямой доступ к файлам, есть ли в любом случае это сделать, я попробовал некоторые, отредактировав свой .htaccess в общедоступной папке,

<IfModule mod_rewrite.c>
RewriteEngine on
Order Deny,Allow
Deny from all
Allow from 127.0.0.1    
<Files /../index.php>
    Order Allow,Deny
    Allow from all
</Files>
<FilesMatch ".*\.(css|js)$">
    Order Allow,Deny
    Allow from all
</FilesMatch>
</IfModule>

В любом случае, это разрешает только файлы CSS и JS внутри общедоступныхпапку, но запретите все остальные файлы, которые хранятся в общедоступной папке, через url и php после публикации.

1 Ответ

0 голосов
/ 14 ноября 2018

У Laravel есть лучшее решение Вы сохраняете свои файлы в хранилище и вы можете сделать это для загрузки

return response()->download($file);

что ваш файл является абсолютной передачей файла в хранилище вы можете управлять ими, кто может скачать и кто не может и его безопасность

Итак, после того, как вы это сделаете, вы создадите один маршрут, подобный этому:

Route::get('download/{file}',function($file){
return response()->download(storage_path($file));
});

Вы можете сделать что-нибудь с маршрутом, например, добавить промежуточное программное обеспечение для пользователя авторизации или ....

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