我对Ruby on Rails有疑问。我目前正在使用名为Paperclip的宝石来上传文件。
我的问题是上传的文件进入/ public,可以从任何人轻松访问。如何隐藏上传的文件?并且只允许正确的用户下载文件?
我对隐藏某人的链接不感兴趣。但我感兴趣的是必须有人登录才能下载文件。
感谢。
编辑 - http://rdoc.info/github/thoughtbot/paperclip/master/Paperclip/Storage/Filesystem
我仍然不知道如何保护后端的文件?
答案 0 :(得分:2)
您可以通过多种方式处理此安全问题。
这是我向你提出的那个。
您使用Paperclip上传文件。这些文件将存储到您拒绝从浏览器访问的目录中。
在上传过程中,您会将文件的信息存储到数据库服务器的表格中。
您将创建一个控制器来列出和下载您的文件。您可以通过检查他的权利来检查用户是否可以访问或下载该文件。
当您想开始下载时,您将使用send_file强制下载并隐藏文件的真实路径。
示例:
@filename ="#{RAILS_ROOT}/public/dir/a/b/file.mp3"
send_file(@filename, :filename => "music.mp3")
希望这有帮助!