I have some application. User can upload files, i save it on disk, and return it, when user want. I need implement some protection for uploaded files for viruses. I found 3 solutions for this problem:
I don't like first solution, because i send my files and private info for other server. Second solution i think is best, but i don't know how correctly implement it. Last solution good, but i can't find any good and famous antiviruses, who has java api.
Please, give me some direction for solve this problem. Mb some advice or literature. What is best way for solve it?
To scan an email attachment on a Windows 10 computer, download the file, but don't open it. Then right-click the file and select Scan with Microsoft Defender. When the scan is complete, you will see the results at the top of the Settings window.
If you're concerned a file might be malicious, you don't need to download it and rely on your antivirus. You can scan the file for malware with over 90 antivirus engines before you download it—all with one single tool.
First, you have to check what kind of API does your installed antivirus software provides.
If there is any Java API provided (like AVG API) then you have to use it as below:
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.");
}
}
}
If no Java API is provided by the installed antivirus software, then you can still invoke it using command line, as below:
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);
There is an interesting article for your reference: Implementing an Anti-Virus File Scan in JEE Applications
Hope this helps you.
The online AntiVirus ClamAV: https://github.com/cdarras/clamav-client is a good one.
If you use Linux/Mac, the online AV should be sufficient. If you use windows, you should also, install an antivirus on your server.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With