碰巧有人用病毒填写表格和附件。我们的应用程序仅检查文件扩展名和大小,并且没有其他任何验证。可以使用某些防病毒软件检查上传的文件......
这里最好的解决方案是什么?
答案 0 :(得分:2)
我正在使用https://github.com/philvarner/clamavj。下载ClamScan.java
和ScanResult.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.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 服务“自动启动。
否则,只需通过clamAVHost
和clamAVPort
参数连接到Linux安装,您需要定义这些参数值。
答案 1 :(得分:0)
您可以使用Clamscan之类的东西,并使用他们的命令行工具指向您想要的任何文件,或者在您的应用程序中包含执行检查的脚本。
clamscan OPTIONS File/Folder