【问题标题】:Downloading custom file formats下载自定义文件格式
【发布时间】:2011-04-19 09:46:44
【问题描述】:

我的任务是允许用户将文件上传到网页,然后其他用户可以下载该文件。

文件格式是自定义的,在本例中我将其命名为.ccx。这是由我们自己的定制软件打开的。这个想法是,用户可以上传教程文件以相互分享。

但是,我担心有人会设计一个.ccx 文件来在用户计算机上植入病毒。如果设计了这样的文件,这可能会对我们的网站产生非常负面的影响,用户会害怕下载,而我们的竞争对手可能会利用它来利用我们。

  • 作为 Web 开发人员,我如何确保上传的文件安全?我知道不可能 100% 确定,但我想改进目前的“非常不确定”。

  • 另外,在我们的定制软件中,可以采取哪些步骤来确保.ccx 文件不会对用户计算机造成损害(用C++ 编写的Windows 程序)?我说的是exe 相当于 SQL 注入。

感谢所有回答。

【问题讨论】:

    标签: c++ file-upload file-format code-injection


    【解决方案1】:

    在服务器上,您可以对它们运行任何命令行病毒扫描程序,并让它们查找已知的病毒签名。但是,这是否会提高安全性值得怀疑:由于病毒编写者需要修改您的格式,因此他们的恶意文件似乎不太可能匹配任何已知签名,其次您有误报的风险,否则会导致有效上传将被拒绝。

    您需要使您的客户端应用程序对文件格式的处理尽可能安全。这意味着:

    • 不要信任输入文件。验证一切。不要容错。如果您控制着写入此类文件的唯一应用程序,那么任何意外字节都应该触发警钟。
    • 进行广泛的测试(例如某种模糊测试来模拟随机输入变化)
    • 尽可能简单地设计文件格式。如果文件格式很复杂,实现也会很复杂。而且实现越复杂,要处理的格式特征越多,安全漏洞的风险就越高。
    • 确保使用操作系统安全功能,例如 DEP 或 ASLR。
    • 确保从事该项目的所有开发人员都了解常见的安全漏洞以及如何避免这些漏洞。
    • 如果您真的非常担心可能的攻击媒介,请尝试对加载代码进行沙盒处理。例如,这可以通过使用嵌入式脚本语言来实现。

    您永远无法 100% 确定您的代码是安全的。所以最好采取一些预防措施:

    • 实施自动更新,以便能够快速修补安全漏洞。
    • 警告用户不要打开来自不受信任的作者的文件(并告诉他们您不对因“受感染”文件造成的任何损害负责......)。

    【讨论】:

      【解决方案2】:

      以尽可能少的权限运行您的自定义软件。如果有人上传了损坏的文件,这可以确保即使他们控制了您的软件,也不会损害其他任何东西。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-30
        • 1970-01-01
        相关资源
        最近更新 更多