如何在.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
相关产品推荐
相关产品推荐

