Загрузка файла: Безопасность пользователя при загрузке - PullRequest
0 голосов
/ 08 мая 2011

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

Моя проблема возникает, когда клиент передает URL-адрес пользователю (этот URL-адрес хранится в базе данных) т.е.: http://www.example.com/files/my-new-file.pdf

Итак, пользователь нажимает на URL и теперь становится небезопасным, потому что любой технически может загрузить этот файл. Как мне сделать так, чтобы этот файл мог загружать ТОЛЬКО указанный пользователь.

Надеюсь, это имеет смысл в том, что я пытаюсь сделать, и пытаюсь убедиться, что эти файлы защищены. Любые мысли будут оценены.

Ответы [ 3 ]

1 голос
/ 09 мая 2011

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

Например, простая страница PHP может читать файлиз файловой системы и подайте его так, чтобы он был загружен в браузер.

http://www.higherpass.com/php/Tutorials/File-Download-Security/

Вы хотели бы обеспечить:

  • Толькодопустимые файлы могут быть загружены

  • Запрос от действительного аутентифицированного пользователя, которому разрешен доступ к запрошенному файлу

Простой пример того, чтоURL уязвим для обхода каталога в параметре файла.Вы должны проверить любое имя файла, которое передается вашему скрипту PHP, чтобы защитить от атак типа "../ .."Это может на самом деле стать довольно сложным.

Что может сработать для вас, так это наличие системы токенов, в которой на файлы ссылается уникальный сложный случайный токен.База данных хранит фактическое местоположение файла в файловой системе, и когда запрос получен, такой как /download.php?token=blah ... вы ищите a) расположение файла, на который ссылается токен "бла", и b) чтосеансу вызывающего пользователя разрешен доступ к файлу.Если все хорошо, предоставьте файл пользователю, в противном случае выдайте ошибку и зарегистрируйте незаконный доступ.

0 голосов
/ 08 мая 2011

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

В противном случае, когда кто-либо загружает файл, спрашивает его / ее адрес электронной почты и отправляет строковый ключ (случайным образом генерируемый вашим сервером и сопоставленный с загруженным файлом), который может использоваться пользователем, который хочет загрузить в качестве пароля.

Поделитесь этим ключом с пользователями, которыми хочет поделиться загрузчик ...

0 голосов
/ 08 мая 2011

Защита пути к изображению - PHP

Надеюсь, это поможет вам.

...