2011-05-08 3 views
0

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

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

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

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

+0

Не забудьте отметить правильный ответ, который до сих пор кажется Майклом – afarazit

+0

Хорошее напоминание! Благодаря! – Justin

ответ

0

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

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

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

+0

Да, у меня есть пользователи, которые должны войти в систему, но независимо от того, что у файла есть OPENness. – Justin

1

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

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

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

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

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

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

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

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

Смежные вопросы