0

如果有人可以提供帮助,我有一个快速的问题。我正在为客户构建一个 CMS,他们可以在其中登录并更改所有存储在数据库中的内容(包括通过上传文件形式的图片)。

我的问题..我一直在研究,到处都说我需要将图像文件存储在根文件夹之外。如果只有少数人会在管理面板中上传文件,在我的情况下,这是否有必要,他们必须首先登录到该站点?我已经通过确保文件类型、大小、扩展名等在客户端采取措施......然后在将文件添加到我的数据库之前更改文件的名称......这是否足够安全,或者我是在自找麻烦马路?

谢谢

4

1 回答 1

1

将上传的内容存储在浏览器无法直接访问的地方通常是个好主意。您不希望有人上传 .php 文件(或您忘记检查的其他格式),然后通过提取直接 url 来执行它。相反,您将拥有一个传递文件的包装脚本。

所以是的,这是一个好主意,但不是“必要的”(根据该词的字典定义)。如果您认为管理区域在其他方面是安全的,您当然可以选择不这样做。

也就是说,在您描述的场景中,只要它唯一可以上传图像的管理员用户,我认为这两种方式都不是什么大不了的事。

顺便说一句,如果您还没有,请通过文件头或内容验证图像,而不是文件扩展名。

于 2012-09-17T21:02:20.870 回答