我应该在哪里存储上传的文件在服务器


Where should i store uploaded files in server?

我正在学习PHP以及做一个项目,涉及上传文件到服务器。我的目标是使它尽可能安全,所以你建议在哪里保存所有上传的文件。上传的文件都是pdf文件。我在某个地方读到最好保存上传的文件在文档根之外,在其他地方我读到它不容易从php访问文档根之外的文件,所以我很困惑。任何对克服这种情况的最佳实践的帮助都是值得感谢的!谢谢!

我相信的原因没有将文件存储在根路径是理论上的人可以猜导演,和访问文件,你可以学习权限(在服务器上),这可能是非常困难的,或者你使用一些如NAS驱动(这就好像它是一个本地驱动器上你的网络,但没有人以外的网络可以看到)不过这可以昂贵,是另一件你需要学会(配置NAS框)。如果这两个不能工作,尝试在服务器上使用单独的驱动器或将驱动器划分为两个驱动器。并将文件存储在那里,至于代码本身,只需指定完整路径并将其视为根驱动器上的任何其他文件(这就是我如何做到的,但我不是PHP专业人士)。如果你有任何问题,请随时提问,我希望我已经为你回答了这个问题:)

这里有几种划分驱动器的方法:

Vista/Windows server 2008(或大多数其他Windows服务器):http://blogs.technet.com/b/steve_lamb/archive/2008/07/08/how-to-re-partition-a-hard-disk-under-vista-or-server-2008-without-having-to-re-install.aspx

祝你好运!

出于安全考虑,将上传文件暂时存储在文档根目录之外,直到它们被筛选为可执行代码或确保它们是您所期望的。这样,任何访问上传机制的人都不能通过你的界面上传一个后门,然后通过浏览器访问它(并接管你的服务器)。他们也不能上传恶意代码,导致你的网站做其他事情。

筛选完成后,为了让某人访问文件(查看pdf),文件最终需要存储在文档根目录之上,以便进行良好的SEO。这样,它们就可以被搜索引擎链接并挖掘信息,而不会增加服务器的负担。

有些人说你可以将它们存储在文档根目录下,然后将它们作为附件呈现给用户,并与read一起流式传输给他们。问题是,如果你使用的文件很大,如果有几个人或机器人同时连接,你可能会使你的特定服务器实例耗尽资源。

您也可以将它们直接流式存储在数据库中,但是除了初始筛选之外,这没有提供任何额外的安全性。此外,从数据库中实际检索它们需要内存和开销,并且如果它们同时连接,搜索引擎可能会使系统耗尽资源。