먼저 설치된 바이러스 백신 소프트웨어가 어떤 종류의 API를 제공하는지 확인해야합니다.
다음 아래를 사용해야합니다 (AVG의 API 등) 제공하는 자바 API가있는 경우에는 자바 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.");
}
}
}
는, 당신은 아직도 그것을 호출 할 수 있습니다 아래와 같이 명령 줄을 사용 :이 도움이
희망 JEE 응용 프로그램의 안티 바이러스 파일 검색을 구현 :
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);
이 참조에 대한 흥미로운 기사가있다 너.
이것은 주로 의견을 기반으로 표시되었지만 옵션 # 2를 제안하고 응용 프로그램에서 자식 프로세스로 AV 프로세스를 시작한 다음 자식이 종료 코드로보고하는 내용을 확인하십시오 (예 : '0' = clean ,'1' = 감염, 또는 뭔가 다른 - 검사 문서), 등등. – ray
@ray이 권장 사항을 발견했습니다 : "애플리케이션 관점에서 보면 바이러스 백신 소프트웨어를 설치할 수있는 프록시 서버를 만들고이 서버에 파일을 업로드하고 스캔하여 대상 서버로 전송할 수 있습니다."그러나새로운 서버를 사용해야합니까? – zam
올바르게 설정하기위한 인프라와 노하우가 있다면 서버에서 AV를 설치하면 애플리케이션이 새 파일에 대해 AV를 자식 프로세스로 실행할 수 있다고 가정합니다. 더 단순 해 보이지 않는가? – ray