即时通讯建立一个小型网站,允许用户上传和下载他们的个人文件从服务器。 Codeigniter被用于该项目,并使用file uploading class来上传文件。限制,只有相关的上传者可以下载他们的文件
问题是我如何确保只有上传文件的人可以下载它。目前所有的文件都上传到localhost/curious/uploads
。尽管文件只对上传者可见,但如果他们共享上传链接,则任何人都可以下载该文件。
因此,如果Steve上传一个名为secure_rom.doc
的文件,路径为localhost/curious/uploads/secure_rom.doc
,那么任何拥有该链接的人都可以下载该文件。
怎么可能确保只有上传者可以从下载区下载而不是其他人?
不知道你的情况太多了,可能是最简单的方法是有内部的子文件夹/上传,命名与用户的用户名,所以/ uploads/LiveEn只能通过LiveEn访问,并且/uploads/emma.fn2只能通过emm访问a.fn2。 – 2013-04-20 14:31:58
@ emma.fn2我确实尝试过,但限制无法正常工作。所以当他们登录时只有用户可以访问该文件夹,但如果有人共享链接,他们可以直接下载ID。 – LiveEn 2013-04-20 14:39:42
您是否正在进行任何检查以查看尝试连接的人是否已登录到您的网站,并且有权下载?如果没有,你应该做的是设置一个rewriterule,它将匹配/uploads/username/file.xyz,并将其传递给一个下载控制器文件,例如检查$ _SESSION ['username'],并将其与文件夹名称(将来自URL)。只要确保将文件放在可见Web目录之外,这样它们就不能直接从URL下载。这可能是为什么它不起作用。如果那有意义的话!?对不起,如果它不大声笑。 – 2013-04-20 14:42:26