【发布时间】:2012-05-07 06:16:54
【问题描述】:
上下文:
我刚刚编写了一个 PHP 文件上传处理程序,它将所有传入的文件保存到我网站的上传目录。 上传目录可通过网络公开访问,目前每个文件在使用数据库生成的唯一 ID 重命名后直接转储到其中。 处理程序将允许除 JS 和 PHP 之外的任何文件类型,而不仅仅是图像。 文件数量最终可能会达到数千个,但这需要几年时间。
我的问题:
将所有上传的文件放在服务器上的同一目录中是个好主意还是坏主意,如果不是,请解释原因,以及什么更好的方法?
我注意到 wordpress 将它们存储在以日期命名的目录中。
我能看到的唯一真正的缺点是目录中的ls 可能是资源密集型的,一旦那里有几千个文件。
还是对一个目录中的文件数量或一个目录的总大小(运行 Linux)有限制?
关于安全性的一些先发制人的说明:
上传处理程序可以防止任何人登录管理员级别的用户上传文件,并且它也不会保存 PHP 或 JS 文件(至少我可以使用 @ 中的 type 属性可靠地测试它们) 987654323@ 数组),因为这些可以由服务器执行。我计划实施的另一个保护措施是一个.htaccess 文件,它阻止对某些文件类型的请求,以防万一。也欢迎任何关于这方面的说明,但这不是这个问题的一部分。
【问题讨论】:
标签: php file-upload file-io directory