Php 安全上载可执行文件并维护文件的机密性

Php 安全上载可执行文件并维护文件的机密性,php,security,file-upload,Php,Security,File Upload,我是php程序员,熟悉secur文件上传,例如: 1-不要将.htaccess文件放在存储上载文件的同一目录中。它应该放在父目录中 2-如果可能,将文件上载到服务器根目录之外的目录中 3-防止覆盖现有文件(防止.htaccess覆盖攻击) 4-创建接受的mime类型列表(映射这些mime类型的扩展) 5-生成随机文件名并添加先前生成的扩展名 6-不要只依赖客户端验证,因为这是不够的。理想情况下,应该同时实现服务器端和客户端验证 8-检查mime类型、文件名和文件的扩展,同时存储文件的哈希值和。。

我是php程序员,熟悉secur文件上传,例如:

1-不要将.htaccess文件放在存储上载文件的同一目录中。它应该放在父目录中

2-如果可能,将文件上载到服务器根目录之外的目录中

3-防止覆盖现有文件(防止.htaccess覆盖攻击)

4-创建接受的mime类型列表(映射这些mime类型的扩展)

5-生成随机文件名并添加先前生成的扩展名

6-不要只依赖客户端验证,因为这是不够的。理想情况下,应该同时实现服务器端和客户端验证

8-检查mime类型、文件名和文件的扩展,同时存储文件的哈希值和。。。。。以及基于此链接的其他提示:

一,-

二,-

但我有一个网站,用户可以上传mal文件或exe文件给专家检查文件。文件的保密性也很重要

所以这个文件有两个限制:1-用户可以上传mal文件或exe文件2-这些文件是机密的,应该有良好的保护i存储(以保持机密性)

我的解决办法是:

1-我强制用户发送zip文件,程序将文件加载到服务器根目录之外的目录中。。这个限制够了吗

2-维护文件的机密性。如何将文件的某些部分存储在数据库中,而将文件系统中的其他部分存储在文件系统中。为了,如果黑客破坏了服务器将无法获取漏洞文件数据

1-我强制用户发送zip文件,程序将文件加载到服务器根目录之外的目录中。。这个限制够了吗

你将如何执行这一点?检查文件扩展名?信任用户提供的头?解析文件并猜测其MIME类型

2-维护文件的机密性。如何将文件的某些部分存储在数据库中,而将文件系统中的其他部分存储在文件系统中。为了,如果黑客破坏了服务器将无法获取漏洞文件数据

这不会给你带来多少好处。如果攻击者可以破坏您的系统,他们可以从与文件一半相同的磁盘获取数据库密码,从而恢复整个文件

更好的办法是将文件内容传递到单独的服务器(例如AmazonS3存储桶),并从不同的域名为您的文件提供服务

但我有一个网站,用户可以上传mal文件或exe文件给专家检查文件。文件的保密性也很重要


这是用于类似的情况吗?

与其将文件拆分以防止可能的漏洞,不如使用加密。如果有人破坏了您的服务器,他们可能可以访问解密您的文件所需的所有内容!只有当攻击者以某种方式访问了您的文件存储目录,而没有访问服务器上的其他目录时,加密才能拯救您。那是一种极不可能的情况。但是,如果在数据库和文件系统中分割文件,如果黑客破坏了服务器,服务器将无法轻松获取所有文件数据?您所完成的唯一一件事就是稍微减速;他们必须下载文件和数据库。。。似乎不值得我这么努力。这个问题似乎离题了,因为它是一个跨主题的帖子