【问题标题】:secure upload executable file and maintain confidentiality of files安全上传可执行文件并维护文件的机密性
【发布时间】: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


【解决方案1】:

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

您将如何执行此操作?检查文件扩展名?信任用户提供的标头?解析文件并猜测其 MIME 类型?

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

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

一个更好的主意是将文件的内容传递到单独的服务器(例如 Amazon S3 存储桶)并从不同的域名提供文件。

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

这是为了 VirusTotal 之类的东西吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-09
    • 2011-12-19
    • 2012-01-14
    • 1970-01-01
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多