你如何病毒扫描正在上传到你的java webapp的文件?

基本上,我想在将文件上传(在将它们写入磁盘之前)到Web应用程序时对病毒进行扫描。

特别是,我想与“McAfee VirusScan Enterprise”(最新版本)集成。

从设计和维护的角度来看,使用第三方产品扫描防火墙上的某些路径可能更好吗? 这样,Web应用程序就不必关心病毒扫描。 为了最大限度地减少开销,典型的病毒扫描防火墙允许您指定URL模式以及特定的POST数据模式。 如果它是一个HTTPS站点,这当然是行不通的(除非有一些方法)。

来自stackoverflow的这篇文章似乎表明McAfee的SDK不再可用,但是有开源替代品吗?

查看Clamv( http://www.clamav.net/ )它是一个开源的反病毒软件,您可以扫描一个流。 因此您无需保存文件进行扫描。

http://linux.die.net/man/1/clamscan

扫描数据流:cat testfile | clamscan –

所以很容易,用-arg启动clamscan过程。 将文件内容写入stdin,然后等待结果代码。

在测试期间,您可以使用EICAR文件,该文件专用于检查防病毒是否正常工作。 http://en.wikipedia.org/wiki/EICAR_test_file

您可以调查ClamAV或ClamWin 。 它们是开源病毒扫描程序,ClamWin基于ClamAV。 你应该能够修改其中一个(如果还没有人)来做你想做的事情。

另一方面,您可以考虑简单地将流式文件放入目录并让扫描程序监视该特定目录。

卡巴斯基(以及其他人可能)似乎有几种方法可以在企业级别处理这个问题: http : //usa.kaspersky.com/business-security/targeted-solutions

互联网网关产品可能是最相关的。 看起来它支持Checkpoint,Squid Proxy Server和Microsoft。

这里有试用和文档的下载页面: http : //usa.kaspersky.com/downloads/documentation

在企业级别,您可能决定获得一个设备(例如Cisco ACE),该设备卸载SSL,然后使用其中一个选项(或Cisco IOS入侵防御系统(IPS)与思科防火墙)。 我有几个客户端使用Cisco ACE设备,但我正在调查防火墙上的病毒检测。

    Interesting Posts