碰巧有人用病毒填写表格并附加了文件。我们的应用程序仅检查文件扩展名和大小,而没有其他任何验证。可以使用某些防病毒软件或其他工具检查上传的文件。

最好的解决方案是什么?

最佳答案

我正在使用https://github.com/philvarner/clamavj。下载ClamScan.javaScanResult.java

然后我有这样的称呼(未经测试):

protected ScanResult.Status virusScanFile(File file) {
    ClamScan clamScan = new ClamScan(clamAVHost, clamAVPort, clamAVTimeout);
    ScanResult scanResult = null;
    if (clamScan.ping()) {
        try (InputStream inputStream = new FileInputStream(file)) {
            scanResult = clamScan.scan(inputStream);
        } catch (FileNotFoundException | IOException e) {
            logger.error(e.getStackTrace());
        }
    } else {
        throw new RuntimeException("Could not scan file as ClamD did not respond to ping request!");
    }
    ScanResult.Status scanResultStatus = null;
    if (scanResult != null) {
        scanResultStatus = scanResult.getStatus();
    }
    return scanResultStatus;
}


如果出于开发目的需要在Windows上安装ClamAV,则可能对您有用:


下载包含clamd.exe的http://oss.netfarm.it/clamav/
下载http://www.clamwin.com/,它是Windows版本的ClamAV,其中包含病毒定义更新程序(freshclam.exe);
正常安装两个应用程序;
将clamd.conf复制到C:/ Clamav并进行如下编辑:

LogFile C:\Program Files (x86)\ClamWin\bin\clamd.log
DatabaseDirectory C:\ProgramData\.clamwin\db

打开带有管理员权限的cmd提示符,然后将'cd'转到
Clamav文件夹,您将在其中找到clamd.exe;
键入“ clamd.exe --install”(不带引号);
打开Windows服务并设置“ ClamWin Free Antivirus Scanner
服务”以自动启动。


否则,只需通过clamAVHostclamAVPort参数连接到Linux安装,您需要定义它们的值。

09-27 01:49