Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何保护上载文件夹中的图像不被管理员以外的任何人查看_Php_.htaccess - Fatal编程技术网

Php 如何保护上载文件夹中的图像不被管理员以外的任何人查看

Php 如何保护上载文件夹中的图像不被管理员以外的任何人查看,php,.htaccess,Php,.htaccess,好的,下一个场景是理想的(可能不可能的): 1) 任何人都可以将图像上载到文件夹 2) 只有管理员,通过网络管理员界面/常规的、密码保护的管理员面板才能看到它 我想这是不可能的,除非我直接将图像存储到数据库中(作为BLOB类型),并在管理面板中显示它们(我想这会降低性能) 那么,我能做什么, a) 除了在上载文件夹中放置空白索引文件(已完成) 但是我想有一些方法可以猜测/获取文件名 b) 也许,添加一些.htaccess保护(您有什么建议?) 同样,上传是表单的一部分(不需要注册!),我需要一些

好的,下一个场景是理想的(可能不可能的):

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

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

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

那么,我能做什么, a) 除了在上载文件夹中放置空白索引文件(已完成) 但是我想有一些方法可以猜测/获取文件名

b) 也许,添加一些.htaccess保护(您有什么建议?)


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

一旦提交表单,您可以对上传的文件执行任何操作


为什么不将图像存储在一个无法从web访问的文件夹中,然后通过编程从管理界面访问这些文件?

提交表单后,您可以对上载的文件执行任何操作

为什么不将图像存储在一个无法从web访问的文件夹中,然后通过编程从管理界面访问这些文件?

给您:

1) 不要在数据库中存储文件。永远

2) 使用.htaccess“拒绝所有”(基本上)保护上载目录(只有上载的文件才会存在),或者将上载目录存储在web不公开的位置(请参见下面的#3)

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

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

给您:

1) 不要在数据库中存储文件。永远

2) 使用.htaccess“拒绝所有”(基本上)保护上载目录(只有上载的文件才会存在),或者将上载目录存储在web不公开的位置(请参见下面的#3)

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


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

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

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

谢谢,是的,我猜只有这才是足够安全的解决方案。。。我认为在web根目录外上传可能会很复杂,但是,正如我所看到的,这不是…谢谢,是的,我猜只有这才是足够安全的解决方案。。。我认为在Webroot之外上传可能会很复杂,但是,正如我所看到的,它不是。。。