2011-04-19 37 views
1

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

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

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

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

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

感谢您的所有答案。

回答

3

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

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

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

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

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

使用尽可能少的特权运行您的自定义软件。如果有人上传损坏的文件,这可以确保即使他们获得对软件的控制权,他们也不能妥协其他任何东西。