Безопасная загрузка файлов в Laravel

У меня есть проект Laravel 5, в котором я загружаю файлы в базу данных в формате Medium Blob.

Но загрузка файлов в базу данных требует дополнительного времени для выполнения.

Загрузка файлов в базу данных является безопасным способом защиты файлов от сканеров или некоторых ботов.

Я пытался загрузить файлы в общую папку. Но сканеры могут открыть эти файлы.

Есть ли возможный способ загрузки файлов в файловую систему?

Так что сканеры не могут открыть эти файлы.

Я хочу, чтобы эти файлы были защищены

3 ответа

Решение

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

$image = \Storage::get('file.jpg');

редактировать

Правильная установка Laravel просто позволяет содержание public/ быть доступным через веб-браузер. Если другие каталоги как storage/ или же resources/ тоже общедоступны, значит, ваша установка действительно неверна.

Сказал, что, как только вы загрузите файлы в storage/ никто не сможет получить к ним доступ, кроме как с помощью фасада \Storage. Когда вы звоните, например, \Storage::get('file.jpg'); он возвращает поток битов, который вы можете разместить во временной папке и затем отобразить на веб-сайте. После завершения запроса изображение снова исчезнет из общественного достояния.

Нет необходимости менять каталог, это может быть достигнуто двумя способами

LazyOne Ответ с помощью.htaccess

А ТАКЖЕ

Использование robots.txt

Я предлагаю реализовать оба.htaccess и robots.txt, так как некоторые дешевые сканеры игнорируют robots.txt, но не могут игнорировать.htaccess

Вы можете следовать этому методу

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

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

Другие вопросы по тегам