RoR Загрузить файл безопасности вопрос - PullRequest
0 голосов
/ 13 января 2011

У меня вопрос по Ruby on Rails. В настоящее время я использую гем под названием Paperclip, чтобы загружать файлы.

Мой вопрос: загруженные файлы попадают в / public, к которому легко получить доступ кому угодно. Как мне скрыть загруженные файлы? И только разрешить правильному пользователю скачивать файл?

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

Спасибо.

Редактировать - http://rdoc.info/github/thoughtbot/paperclip/master/Paperclip/Storage/Filesystem

Я до сих пор не понимаю, как мне защитить файлы в бэкэнде?

1 Ответ

2 голосов
/ 13 января 2011

Вы можете решить эту проблему безопасности разными способами.

Вот один из тех, что я предлагаю вам.

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

  2. Во время загрузки вы сохраните информацию о файле в таблицу на сервере базы данных.

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

  4. Если вы хотите начать загрузку, вы будете использовать send_file для принудительного запусказагрузка и скрытый реальный путь к файлу.

    Пример:

    @filename ="#{RAILS_ROOT}/public/dir/a/b/file.mp3"
    send_file(@filename, :filename => "music.mp3")
    

Надеюсь, эта помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...