如何保护上传文件夹中的图像不被任何人查看除了管理员

时间:2014-03-19 17:59:48

标签: php .htaccess

好的,希望(可能不可能?)场景是下一个:

1)任何人都可以将图像上传到文件夹

2)只有管理员,通过网络管理界面/常规,受密码保护的管理面板才能看到它

我想这是不可能的,除非我直接将图像存储到数据库(作为BLOB类型),并在管理面板中显示它们(这会降低性能,我猜)。

所以,我能做什么, a)除了将空白索引文件放在上传文件夹中(已经完成) 但我想有办法猜测/获取文件名

b)也许,添加一些.htaccess保护(你的建议是什么?)

同样,上传是表单的一部分(不需要注册!),我需要一些方法只允许管理员查看/下载图像,但要保护其他图像,因为敏感数据存在问题。

3 个答案:

答案 0 :(得分:2)

你走了:

1)不要在您的数据库中存储文件。如初。

2)使用.htaccess - “拒绝所有”(基本上)保护上传目录(仅限上传的文件) - 或将上传目录存储在不公开的网页上(见下面的#3)

3)有一个提供文件下载的临时文件(用户是否登录?如果是,请设置标题和readfile()实际文件 - 这将强制文件下载。数据库应存储文件名,路径和其他相关细节)

PHP上传脚本可以将文件保存在任何目录中,即使是包含.htaccess的目录。

答案 1 :(得分:1)

提交表单后,您可以使用上传的文件执行任何操作。

为什么不将图像存储在无法从Web访问的文件夹中,然后以编程方式从管理界面提供对这些文件的访问?

答案 2 :(得分:1)

您可以在上传后使用管理员的公钥加密图像,因此只有管理员的私钥才能解密和查看。