繁体   English   中英

如何保护公共图像上传文件夹免受操纵/直接访问

[英]How to protect a public image upload folder from manipulation/direct access

我已经找到了这个问题的几个答案,但是每种情况都与我的不同。 在花数小时实施我认为可行的方法之前,我想先发表一两次意见。 谁知道呢,也许有一个更简单的解决方案也能使其他人受益!

我正在创建一个提供照片修改服务的网站。 我的每个客户都将使用在Github上找到的jQuery / PHP上传脚本的修改版本( BlueImp的File Upload脚本支持BlueImp!)上传他们的照片。完成每张图像的上传后,图像的缩略图会显示在旁边。图片的文件名。

上载页面根据其订购号创建一个文件夹,以及一个用于存储图像的缩略图子文件夹。 例如,对于12345号订单:

/ uploads / 12345 <-上载图片的文件夹

/ uploads / 12345 / thumbs <-从中提供缩略图的文件夹

客户不要访问其他客户的照片,这一点很重要。 我将上载文件夹移到了我的网站根目录之外,但是当图像完成上传时,缩略图没有显示,因为,好了,它们不在网站根目录中,因此链接无法正常工作。

这是我想到的解决方案:

分开文件夹。 将主上载文件夹移至文档根目录之外,但将缩略图文件夹保留在文档根目录内,以便在每次上载完成后即可提供缩略图。 用户上传完图像后,删除与该订单号相对应的缩略图文件夹。

有更好的方法吗? 我担心的是禁止访问照片(客户端只需要上传一次,然后等待我们完成修改即可。他们不必重新登录即可下载它们。)我不希望有人能够通过地址栏或其他任何位置访问上传文件夹。 我可以使用.htaccess文件限制访问,但仍然允许通过上传脚本链接到缩略图吗?

我为罗word的问题表示歉意。 我尽量简洁,因为我对编程的了解有限。 在此先感谢您的时间和精力,以帮助您。

两种方式

  1. 在每个目录上写一个空白的index.html ,它将禁止访问文件。
  2. .htaccess中写下以下内容(如果不存在,请创建此文件)

     Options -Indexes 

    或如果您不想在局域网外进入

     # no nasty crackers in here! order deny,allow deny from all allow from 192.168.0.0/24 # this would do the same thing.. #allow from 192.168.0.0 to 192.168.0.24 

参考
多一个

您想向每个所有者客户展示大拇指,而不向其他客户展示? 知道订单号(序列号),您可以轻松地尝试一些链接并查看一些照片。

我建议使用.htaccess为上载文件夹设置密码,并为必须归属于订单号的每个拇指生成一个哈希号。

第二种解决方案:使用.htaccess密码访问上载文件夹并在生成订单确认页面时生成拇指,而无需保存拇指。 (您只需提及一次,他就只能看到它)。

玩得开心!

您应该做的两件事是:

禁用目录索引。

始终保持文件名随机。 使用数据库映射它们。 即file1.jpg-> file_af324234324324ff。 您也可以将缩略图文件信息存储在同一表中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM