gpt4 book ai didi

c# - .NET 病毒扫描 API

转载 作者:IT王子 更新时间:2023-10-29 04:00:08 24 4
gpt4 key购买 nike

我正在构建一个 Web 应用程序,我需要在其中扫描用户上传的文件是否有病毒。

是否有任何有构建此类内容经验的人可以提供有关如何启动和运行它的信息?我猜测防病毒软件包具有 API 以编程方式访问其功能,但要了解详细信息似乎并不容易。

仅供引用,该应用程序是用 C# 编写的。

最佳答案

使用前重要提示:注意 TOS 协议(protocol)。您授予他们对所有内容的完全访问权限:“当您上传或以其他方式提交内容时,您授予 VirusTotal(以及与我们合作的人)全局范围内的、免版税的、不可撤销的和可转让的许可,以使用、编辑、托管、存储、复制、修改、创建衍生作品、传播、发布、公开表演、公开展示和分发此类内容。”

您可以使用 VirusTotal.com 的服务,而不是使用本地防病毒程序(从而将您的程序绑定(bind)到该特定防病毒产品并请求您的客户安装该防病毒产品)

本网站提供免费服务,您的文件将作为输入提供给众多防病毒产品,您会收到一份详细报告,其中包含扫描过程产生的证据。通过这种方式,您的解决方案不再绑定(bind)到特定的防病毒产品(尽管您绑定(bind)到 Internet 可用性)

该站点还提供了一个应用程序编程接口(interface),允许以编程方式访问其扫描引擎。

Here a VirusTotal.NET a library for this API
Here the comprensive documentation about their API
Here the documentation with examples in Python of their interface

因为没有代码就没有完整的答案,所以这直接取自 VirusTotal.NET 库附带的示例客户端

static void Main(string[] args)
{
VirusTotal virusTotal = new VirusTotal(ConfigurationManager.AppSettings["ApiKey"]);

//Use HTTPS instead of HTTP
virusTotal.UseTLS = true;

//Create the EICAR test virus. See http://www.eicar.org/86-0-Intended-use.html
FileInfo fileInfo = new FileInfo("EICAR.txt");
File.WriteAllText(fileInfo.FullName, @"X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*");

//Check if the file has been scanned before.
FileReport fileReport = virusTotal.GetFileReport(fileInfo);

bool hasFileBeenScannedBefore = fileReport.ResponseCode == ReportResponseCode.Present;

Console.WriteLine("File has been scanned before: " + (hasFileBeenScannedBefore ? "Yes" : "No"));

//If the file has been scanned before, the results are embedded inside the report.
if (hasFileBeenScannedBefore)
{
PrintScan(fileReport);
}
else
{
ScanResult fileResult = virusTotal.ScanFile(fileInfo);
PrintScan(fileResult);
}
... continue with testing a web site ....

免责声明
我与他们没有任何关系。我写这个答案只是因为它似乎是对这些已有 4 年历史的答案的一个很好的更新。

关于c# - .NET 病毒扫描 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/975112/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com