Безопасная загрузка файлов в Laravel
У меня есть проект Laravel 5, в котором я загружаю файлы в базу данных в формате Medium Blob.
Но загрузка файлов в базу данных требует дополнительного времени для выполнения.
Загрузка файлов в базу данных является безопасным способом защиты файлов от сканеров или некоторых ботов.
Я пытался загрузить файлы в общую папку. Но сканеры могут открыть эти файлы.
Есть ли возможный способ загрузки файлов в файловую систему?
Так что сканеры не могут открыть эти файлы.
Я хочу, чтобы эти файлы были защищены
3 ответа
Вы можете загрузить их за пределы общедоступной области. Например, storage/
папка хорошее место. Также вы можете получить их с помощью менеджера файловой системы. Взглянуть:
$image = \Storage::get('file.jpg');
редактировать
Правильная установка Laravel просто позволяет содержание public/
быть доступным через веб-браузер. Если другие каталоги как storage/
или же resources/
тоже общедоступны, значит, ваша установка действительно неверна.
Сказал, что, как только вы загрузите файлы в storage/
никто не сможет получить к ним доступ, кроме как с помощью фасада \Storage. Когда вы звоните, например, \Storage::get('file.jpg');
он возвращает поток битов, который вы можете разместить во временной папке и затем отобразить на веб-сайте. После завершения запроса изображение снова исчезнет из общественного достояния.
Нет необходимости менять каталог, это может быть достигнуто двумя способами
LazyOne Ответ с помощью.htaccess
А ТАКЖЕ
Я предлагаю реализовать оба.htaccess и robots.txt, так как некоторые дешевые сканеры игнорируют robots.txt, но не могут игнорировать.htaccess
Вы можете следовать этому методу
изображения людей с ограниченными возможностями , только для проверки подлинности пользователей
Поскольку это позволяет только авторизованные использования для просмотра изображения