You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在.NET中使用Google Safe Browsing(v4)?求示例代码

.NET 集成 Google Safe Browsing v4 Lookup API 示例

我之前在做.NET项目集成Google Safe Browsing v4的时候,也碰到过找不到合适示例的问题,官方仓库里的相关示例确实比较零散,我整理了一套可以直接复用的代码片段,你可以参考下:

第一步:安装必要的NuGet包

首先确保你已经安装了官方的Safe Browsing SDK包:

Install-Package Google.Apis.SafeBrowsing.v4
Install-Package Google.Apis

第二步:核心代码实现

下面是一个封装好的检查类,支持批量URL检测,包含了最常用的功能:

using Google.Apis.SafeBrowsing.v4;
using Google.Apis.SafeBrowsing.v4.Data;
using Google.Apis.Services;
using System.Collections.Generic;
using System.Threading.Tasks;

public class SafeBrowsingUrlChecker
{
    private readonly SafeBrowsingService _safeBrowsingService;
    private const string _apiKey = "替换为你的Google API密钥";

    public SafeBrowsingUrlChecker()
    {
        var serviceInitializer = new BaseClientService.Initializer
        {
            ApiKey = _apiKey,
            ApplicationName = "你的应用名称"
        };

        _safeBrowsingService = new SafeBrowsingService(serviceInitializer);
    }

    /// <summary>
    /// 批量检查URL是否存在安全威胁
    /// </summary>
    /// <param name="urls">需要检测的URL列表</param>
    /// <returns>匹配到的威胁列表,无威胁则返回空列表</returns>
    public async Task<List<ThreatMatch>> CheckUrlsForThreatsAsync(List<string> urls)
    {
        var threatRequest = new FindThreatMatchesRequest
        {
            Client = new ClientInfo
            {
                ClientId = "你的客户端标识(比如应用名称)",
                ClientVersion = "1.0.0" // 应用版本号
            },
            ThreatInfo = new ThreatInfo
            {
                // 指定需要检测的威胁类型,可根据需求调整
                ThreatTypes = new List<string> 
                { 
                    "MALWARE", 
                    "PHISHING", 
                    "UNWANTED_SOFTWARE",
                    "SOCIAL_ENGINEERING" 
                },
                // 指定目标平台,比如WINDOWS、ANDROID、IOS等,也可以留空适配所有平台
                PlatformTypes = new List<string> { "WINDOWS" },
                ThreatEntryTypes = new List<string> { "URL" },
                // 转换URL为API要求的格式
                ThreatEntries = urls.Select(url => new ThreatEntry { Url = url }).ToList()
            }
        };

        var response = await _safeBrowsingService.ThreatMatches.Find(threatRequest).ExecuteAsync();
        return response.Matches ?? new List<ThreatMatch>();
    }
}

第三步:使用示例

你可以在业务代码里这样调用:

var checker = new SafeBrowsingUrlChecker();
var urlsToCheck = new List<string> 
{ 
    "https://example.com", 
    "https://malicious-example.com" 
};

var threats = await checker.CheckUrlsForThreatsAsync(urlsToCheck);

if (threats.Count > 0)
{
    foreach (var threat in threats)
    {
        Console.WriteLine($"检测到威胁:URL {threat.Threat.Url},类型:{threat.ThreatType}");
    }
}
else
{
    Console.WriteLine("所有URL均安全");
}

关键注意事项

  • API密钥配置:你需要在Google Cloud Console中创建API密钥,并启用Safe Browsing API,否则会返回权限错误
  • 配额限制:免费版API有调用次数配额,超过后需要升级到付费方案,建议在代码中添加异常处理
  • 参数调整:ThreatTypes和PlatformTypes可以根据你的业务需求灵活调整,比如只检测钓鱼网站或者移动端平台的威胁

内容的提问来源于stack exchange,提问作者Alex J

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:43:01