确保上传的文件安全

10

我的老板来问我如何确保通过网页上传的文件是安全的。他希望人们能够上传pdf和tiff图像(等等),他真正关心的是有人在pdf中嵌入病毒,然后查看/修改它(并执行病毒)。我刚刚读到一篇关于通过改变最不重要的位来销毁图像中嵌入的隐写信息的过程的文章。类似的过程是否可以用于确保不会植入病毒?有人知道任何可以清除文件的程序吗?

更新: 所以团队就这个问题进行了一些争论,一位开发人员发现一篇关于让文件下载到文件系统并让保护网络的防病毒软件检查那里的文件的帖子。该帖子基本上说对于某些产品来说使用API或命令行太麻烦了。这对我来说有点笨拙,因为我们计划将文件存储在数据库中,但我以前没有扫描病毒文件的经验。有人对此有什么想法或经验吗?

http://www.softwarebyrob.com/2008/05/15/virus-scanning-from-code/

6个回答

4

我建议您将上传的文件运行通过杀毒软件,如ClamAV。虽然我不知道清除病毒的文件,但这至少可以让您在查看它们之前检测和删除受感染的文件。


3
嵌入在图像文件中的病毒不太可能成为应用程序的主要问题。会成为问题的是JAR文件。带有JAR尾缀的图像文件可以作为Java小程序从互联网上的任何页面加载,具有同源绑定(cookies),指向您的应用程序和服务器。
处理图像上传的最佳方法是裁剪、缩放和将其转换为不同的图像格式。在转换前后,图像应具有不同的大小、哈希值和校验和。例如,Gravatar为Stack Overflow提供“伙伴图标”,强制您裁剪图像,然后将其转换为PNG格式。
是否可能构建恶意PDF或DOC文件,利用Word或Acrobat中的漏洞?可能。但ClamAV无法很好地阻止这些攻击;这些并不是“病毒”,而是查看器软件中的漏洞。

2

1

您可能需要在上传过程中链接一个真正的病毒扫描器(就像许多病毒扫描器确保您在浏览器中下载的文件是安全的一样)。

要自己完成这个过程,您需要不断更新它,这意味着需要保留病毒定义库,这可能超出了您的应用程序的范围(根据您的组织规模,甚至可能无法实现)。


0

使用反向代理设置,例如

www <-> HAVP <-> web服务器

HAVP (http://www.server-side.de/)是一种通过ClamAV或任何其他商业杀毒软件扫描http流量的方法。它将防止用户下载感染文件。如果您需要https或其他内容,则可以在HAVP之前放置另一个反向代理或Web服务器,以反向代理模式处理SSL。

然而,它不适用于上传,因此它不会防止文件被存储在服务器上,但会防止文件被下载和传播。因此,请与常规文件扫描(例如clamscan)一起使用。


0

是的,ClamAV应该无论扩展名如何都要扫描文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接