【发布时间】:2014-06-13 15:39:08
【问题描述】:
我是 php 程序员,熟悉安全文件上传,例如:
1- 不要将 .htaccess 文件放在存储上传文件的同一目录中。它应该放在父目录中。
2-如果可能,将文件上传到服务器根目录之外的目录中。
3-防止覆盖现有文件(以防止 .htaccess 覆盖攻击)。
4-创建可接受的 mime 类型列表(这些 mime 类型的映射扩展)。
5-生成一个随机文件名并添加之前生成的扩展名。
6-不要只依赖客户端验证,因为这还不够。理想情况下,应该同时实现服务器端和客户端验证。
8-检查mime类型和文件名和文件的extevtion,还存储文件的hash和.....以及基于此链接的其他提示:
1-http://www.acunetix.com/websitesecurity/upload-forms-threat/
2-https://www.owasp.org/index.php/Unrestricted_File_Upload
但是我有网站,用户可以上传mal文件或exe文件给专家检查文件。文件的机密性也很重要。
所以这个文件有两个限制:1-用户可以上传mal文件或exe文件2-这些文件是秘密的,应该有很好的保护i存储(以保持机密性)
我的解决办法是:
1-我强制用户发送zip文件。程序将文件pload到服务器根目录之外的目录中。这个限制就足够了吗?
2- 维护文件的机密性。如何将文件的某些部分存储在数据库中,而将文件系统中的其他部分存储在文件系统中。为了,如果黑客入侵服务器将无法获取漏洞文件数据?
【问题讨论】:
-
与其拆分文件以防止可能的泄露,不如使用加密方法。
-
如果有人破坏了您的服务器,他们可能有权访问解密文件所需的一切!只有当攻击者以某种方式访问您的文件存储目录时,加密才能拯救您,而服务器上没有其他内容。这是一个非常不可能的情况。 .但是如果在数据库和文件系统中拆分文件,如果黑客入侵服务器将无法轻松获取所有文件数据?
-
您完成的唯一一件事就是轻微减速;他们必须下载文件和数据库……恕我直言,这似乎不值得。
-
这个问题似乎跑题了,因为它是security.stackexchange.com/q/56788/8340的交叉帖子
标签: php security file-upload