我正在建立一个小网站,允许用户从服务器上传和下载他们的个人文件。 Codeigniter正用于项目,我使用file uploading class上传文件。
产生的问题是如何确保只有上传文件的人才能下载它。目前所有文件都已上传到localhost/curious/uploads
。虽然这些文件仅对上传人员可见,但如果他们共享上传链接,则任何人都可以下载该文件。
因此,如果史蒂夫上传了一个名为secure_rom.doc
的文件且路径为localhost/curious/uploads/secure_rom.doc
,则该文件可以由拥有该链接的任何人下载。
如何才能确保只有上传者可以从下载区域下载而不是其他任何人?
答案 0 :(得分:0)
您可以使用下载脚本(尝试使用codeigniter进行调整)
1)检查用户是否已登录
2)使用文件名和内容类型
设置标题3)阅读文件并将其发送给客户端!
控制器:
if($userConnected) {
header('Content-disposition: attachment; filename=' . $file_name);
header('Content-type: ' . $file_mime);
$file_content = file_get_contents($file_location);
echo $file_content;
}
else
echo 'No permission !';
答案 1 :(得分:0)
简单方法
-just store the 'id' of the user when he/she uploaded something.
- hide the URL if 'user_id' is different.
- adding random character will have in securing.