我的老板来找我并询问如何确保通过网页上传的文件是安全的。他希望人们能够上传pdf和tiff图像(等等),他真正担心的是有人将病毒嵌入pdf中,然后查看/更改(并执行病毒)。我刚刚阅读了一些程序,该程序可用于通过改变最不重要的位来破坏图像中记录的速记信息。是否可以使用类似的过程来确保不植入病毒?有谁知道任何可以擦除文件的程序?
更新: 所以团队对此进行了一些争论,一位开发人员发现了一篇关于让文件下载到文件系统并使用保护网络的防病毒软件检查那里的文件的帖子。海报基本上说,对于一些产品来说,使用API或命令行太困难了。这对我来说似乎有些麻烦,因为我们计划将文件存储在数据库中,但我之前不必扫描文件中的病毒。有没有人对此有任何想法或意见?
http://www.softwarebyrob.com/2008/05/15/virus-scanning-from-code/
答案 0 :(得分:4)
我建议您通过ClamAV等防病毒软件运行上传的文件。我不知道擦除文件以删除病毒,但这至少可以让您在查看之前检测并删除受感染的文件。
答案 1 :(得分:3)
嵌入在图像文件中的病毒不太可能成为您的应用程序的主要问题。什么是问题是JAR文件。带有JAR预告片的图像文件可以作为Java小程序从Internet上的任何页面加载,同源链接(cookie)指向您的应用程序和服务器。
处理图像上传的最佳方法是裁剪,缩放和转换为不同的图像格式。变换前后图像应具有不同的大小,哈希值和校验和。例如,为Stack Overflow提供“好友图标”的Gravatar会强制您裁剪图像,然后将其翻译为PNG。
是否有可能构建恶意PDF或DOC文件,以利用Word或Acrobat中的漏洞?大概。但ClamAV在阻止这些攻击方面不会做得很好;这些不是“病毒”,而是查看器软件中的漏洞。
答案 2 :(得分:2)
这取决于您公司的预算,但是可以在您的Web服务器和外部世界之间使用硬件设备和软件应用程序来执行这些功能。其中一些是内置防病毒软件的硬件防火墙。有时它们被称为应用程序网关或应用程序代理。
以下是使用Clam-AV的开源网关的链接: http://en.wikipedia.org/wiki/Gateway_Anti-Virus http://gatewayav.sourceforge.net/faq.html
答案 3 :(得分:1)
您可能需要将实际的病毒扫描程序链接到上传过程(就像许多病毒扫描程序确保您在浏览器中下载的文件是安全的一样)。
为了自己做这件事,你必须让它保持最新,这意味着保留病毒定义库,这可能超出了你的应用范围(根据大小可能甚至不可行)你的组织)。
答案 4 :(得分:0)
是的,无论扩展名如何,ClamAV都应扫描文件。
答案 5 :(得分:0)
使用反向代理设置,例如
www< - > HAVP < - >网络服务器
HAVP(http://www.server-side.de/)是一种扫描http流量的方法,虽然是ClamAV或任何其他商业防病毒软件。它会阻止用户下载受感染的文件。 如果您需要https或其他任何东西,那么您可以将另一个反向代理或Web服务器置于可以在HAVP之前处理SSL的反向代理模式
尽管如此,它在上传时不起作用,因此它不会阻止文件存储在服务器上,但会阻止文件被下载并传播。因此,请使用常规文件扫描(例如clamscan)。