下载自定义文件格式

Downloading custom file formats

本文关键字:格式 文件 自定义 下载      更新时间:2023-10-16

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

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

然而,我担心有人可以设计一个.ccx文件在用户的计算机上植入病毒。这可能会对我们的网站产生非常负面的影响,如果这样的文件被设计出来,用户会变得害怕下载,我们的竞争对手可能会利用这一点来占我们的便宜。

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

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

谢谢大家的回答

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

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

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

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

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

使用尽可能少的特权运行您的定制软件。如果有人上传了损坏的文件,这可以确保即使他们控制了您的软件,他们也无法破坏其他任何东西。