Разрешение безопасных загрузок в PHP для веб-сайтов
Я загрузил некоторые zip-файлы на свой сервер и теперь хочу разрешить пользователю загружать их, если у него / нее есть соответствующий пароль. Я пишу код на PHP и сделал так, чтобы пользователь не мог получить доступ к странице со ссылками на zip-файлы, если не был введен правильный пароль, но, имея ссылку на мой zip-файл, пользователь мог просто увидеть и в будущем делами введите абсолютное местоположение zip-файла и пропустите проверку моего пароля. Если я изменю права доступа к файлу zip, то я не смогу иметь его в качестве ссылки, потому что пользователь не сможет получить к нему доступ. Как я могу позволить пользователю получить zip-файл, сохраняя его в безопасности? Любые предложения будут высоко ценится.
3 ответа
Лучший способ сделать это - mask url
,
- логины пользователей
- сгенерировать токен на основе его логина. немного
md5
или что вы решите - создать ссылку для скачивания (например:
download.php
), которые загружают файл на основе действительного токена и сеанса и получают файл сfile_get_contents()
,
Используйте.htaccess, чтобы запретить прямой доступ к файлам. Поместите этот файл.htaccess в соответствующую папку.
Затем из php authenticate user и после успешной аутентификации перенаправьте пользователя на download.php с именем файла в качестве параметра (или даже id), затем используйте force download
чтобы позволить им скачать. Таким образом, даже если они имеют прямую ссылку на zip-файл, они не смогут загрузить файл.
Вам нужно написать код, который может скрывать ссылки для скачивания / ссылки должны истечь, и новые ссылки должны занять свое место и / или ссылки должны измениться.
Вы можете кодировать его в PHP или использовать существующий фрагмент кода, который именно это и делает.