【问题标题】:How to implement virus scan on file upload in a Spring 3 MVC application [closed]如何在 Spring 3 MVC 应用程序中对文件上传进行病毒扫描[关闭]
【发布时间】:2014-05-04 08:28:22
【问题描述】:

我必须对上传的文件进行病毒扫描,并在 Spring 3 MVC 应用程序中向用户显示适当的消息。

目前我已经使用 Spring MVC 3 配置了文件上传。一旦在控制器中接收到文件,我必须检查是否存在病毒,如果文件感染了任何病毒,那么应用程序应该拒绝该文件并向用户显示具体消息。

关于如何在 Java Spring MVC 应用程序中实现这一点的任何想法。我使用的 spring 版本是 3.2.4。

我们将不胜感激任何有关此方向的帮助/指示。

非常感谢。

【问题讨论】:

  • 嘿@Raptor 到目前为止,文件上传模块正在工作。我不知道如何在控制器级别扫描这些文件,这就是为什么我需要指针以便我可以开始使用它。我还没有开始,因为我的想法不多了。

标签: java spring-mvc file-upload virus-scanning


【解决方案1】:

首先,您必须检查您安装的防病毒软件提供了什么样的 API。

如果提供了任何 Java API(如 AVG API),那么您必须按如下方式使用它:

public void scanFile(byte[] fileBytes, String fileName)
   throws IOException, Exception {
   if (scan) {
      AVClient avc = new AVClient(avServer, avPort, avMode);
      if (avc.scanfile(fileName, fileBytes) == -1) {
         throw new VirusException("WARNING: A virus was detected in
            your attachment: " + fileName + "<br>Please scan
            your system with the latest antivirus software with
            updated virus definitions and try again.");
      }
   }
}

如果安装的杀毒软件没有提供Java API,你仍然可以使用命令行调用它,如下:

String[] commands =  new String[5];
                  commands[0] = "cmd";
                  commands[1] = "/c";
                  commands[2] = "C:\\Program Files\\AVG\\AVG10\\avgscanx.exe";
                  commands[3] = "/scan=" + filename;
                  commands[4] = "/report=" + virusoutput;


                 Runtime rt = Runtime.getRuntime();
                 Process proc = rt.exec(commands);

有一篇有趣的文章供大家参考:Implementing an Anti-Virus File Scan in JEE Applications

希望对你有所帮助。

【讨论】:

  • 您能否提供指向 AVG API 的链接?谢谢你的指点。
  • 同意我在任何地方都找不到这个 api 文档???
  • 如果可以按照方法2如何跟踪病毒扫描的状态?.通过杀毒UI?
  • @Shishir Kumar 是那个 api 给出关于扫描文件状态的响应吗?
猜你喜欢
  • 1970-01-01
  • 2011-03-22
  • 2013-09-13
  • 1970-01-01
  • 2010-11-29
  • 1970-01-01
  • 2011-06-10
  • 2011-05-30
  • 2010-10-02
相关资源
最近更新 更多