开源网站云防病毒解决方案,构建自己的云防病毒。
最近,该公司的一位客户受到勒索软件病毒的攻击。可悲的是,客户端的文件附件太多且太大,并且没有双系统热备份功能。当客户端发支持,据估计相对较难开发。
聪明,您应该已经想到了。查找开源解决方案。开始时,我考虑过是否有一个接口可以调用某些本地防病毒软件,例如60。经过长时间的搜索,我发现使用命令是可行的。该命令确实在本地文件中进行检查和杀死。这不容易控制。
我想要的是在用户上传文件时对其进行扫描,并提供有关文件检测和查杀结果的实时反馈。
继续寻找计划...
最后从Cisco找到了一个开源的东西。 ClamAV,门户网站:

我第一次看到这个网站时,我感到很引人注目。然后我仔细研究了很长时间。在路上。开始构建自己的云防病毒服务器。
所有文件均为英文。而且更新也非常快。最重要的是开源。

我今天刚输入完代码,该代码最后是开源的。文档的具体用法和服务器的构建过程将等到我有时间编写教程之前。
只看波浪的影响。对自己研究代码感兴趣。
服务器渲染:

代码项目结构:


操作效果:
没有病毒的文件:
[Fact]
public async Task ScanBytes_InfectedData_ReturnsExpectedResult()
{
var ctx = IntegrationTestContext.CreateDefaultUnitTestContext();
const string sampleVirusSignature = @"1111111111111";
IClamAVScannerClient ClamAVScannerClient=ctx.Resolve();
var bytes = Encoding.UTF8.GetBytes(sampleVirusSignature);
var result=await ClamAVScannerClient.SendAndScanFileAsync(bytes);
Assert.Equal(ScanResponseStatus.VirusDetected, result.Status);
Assert.NotEmpty(result.InfectedFiles);
}


找到一些病毒测试包进行测试:
[Fact]
public async Task ScanFileStream_InfectedData_ReturnsVirusDetectedResult()
{
var ctx = IntegrationTestContext.CreateDefaultUnitTestContext();
string filePath = @"C:\Users\deng\Desktop\b.zip";
IClamAVScannerClient ClamAVScannerClient = ctx.Resolve();
var result = await ClamAVScannerClient.SendAndScanFileAsync(FileToStream(filePath));
Assert.Equal(ScanResponseStatus.VirusDetected, result.Status);
//Assert.NotEmpty(result.InfectedFiles);
}


提供了WebApi,但还不完善。将来我们将继续改进WebApi界面。



最终效果:


该代码已托管在gitee上:
初步可以使用,我已经在项目中使用了。
当前只有netcore 3. 1版本。
该类库已打包并上传到Nuget。您可以通过nuget管理器搜索JESAI.ClamAV.NetScannerCore以安装和使用
或直接命令Install-PackageJESAI.ClamAV.NetScannerCore
我希望每个人都可以帮助您单击星星。编写代码并不容易。鼓励编写代码的动力。
如果有时间,我将继续写一些有关如何使用和改进文档的教程。或私下与我交谈。还没吃...
本文来自本站,转载请注明本文网址:
http://www.pc-fly.com/a/shouji/article-374470-1.html
……