我正在编写一个允许用户在应用上上传文件的Web应用程序。用户单击“上传”按钮后,该文件将上载到HTTP Server上。用户可以通过从路径中获取文件来接收文件....例如:http://www.demo.com/user/abc/download/the_file.jpg
但我发现所有人都可以使用路径访问此文件。我该怎么办,还是有更好的方法来管理只有注册用户或文件所有者可以下载文件的文件?
答案 0 :(得分:1)
如果使用像apache httpd这样的东西,你可以使用.htaccess文件,如果你希望用户继续访问文件系统路径上的文件,你可以拥有配置给用户或组的目录。
如果您锁定目录并拥有管理文件传递的脚本,则可以检查脚本中的权限并向用户提供所请求的文件或403.
我倾向于使用脚本方法,因为它让我可以更好地控制权限的管理方式和更复杂的访问方案。
答案 1 :(得分:1)
由于性能问题,不能直接在脚本中提供文件,并且由于内存限制,实际上无法提供BIG文件。
最好的选择是使用Apache模块mod_xsendfile。我们的想法是将所有请求重定向到 PHP / Perl / Python脚本只会设置一个HTTP标头,上面写着“ Hey Apache,而不是提供此文件”和mod_xsend文件将会处理它。
如果没有此身份验证,客户端将永远无法下载该文件。