当前位置: 首页 > news >正文

网站安全综合评分API全参数拆解:请求、响应与工程落地方案

适用场景与接口能力边界

网站安全综合评分API(/api/site-security)提供了一站式的域名安全检测能力,通过SSL证书、域名安全、ICP备案、微信/QQ拦截和网站性能五个维度加权计算,输出0-100的综合分数及A/B/C/D/F等级。一次请求即可获得全面的诊断报告,适用于以下场景:

  • 安全巡检自动化:定期对管理的大量域名进行安全态势扫描,生成趋势报告。
  • CDN或云服务商:在用户接入域名时自动校验其安全合规状态。
  • 运维监控看板:将评分数据嵌入实时监控系统,快速定位安全短板。

能力边界

  • 支持的输入:纯域名(如example.com),不能包含协议头或路径
  • 输出范围:每项子维度评分0-100,总分0-100,等级A(≥90)、B(80-89)、C(70-79)、D(60-69)、F(<60)。
  • QPS限制:2次/秒,超出返回429状态码。
  • 检测时间:通常2-5秒,受目标服务器响应速度影响。

请求参数详解:Query与Header

Query参数

参数名必填类型说明示例
domainstring待检测的域名,不含http/https,不含路径。baidu.com

Header参数

参数名必填类型说明
AuthorizationstringAPI鉴权密钥,需替换为实际申请的Key。

注意:实际调用时Header名称为Authorization,值为Bearer YOUR_API_KEY或直接填入Key(以文档为准)。在curl示例中可能使用X-API-Key,请以最新文档为准。

鉴权方式

该API采用请求头鉴权,需在每次请求中携带有效的API Key。申请方式请参考官方文档(参考文档)。建议将Key存储在环境变量或密钥管理服务中,避免硬编码。

请求示例:curl与Java代码

curl示例(可复制运行)

# 替换 YOUR_API_KEY 为实际密钥 export API_KEY="YOUR_API_KEY" curl -sS \ -X GET \ -H "Authorization: Bearer $API_KEY" \ "https://v1.apizero.cn/api/site-security?domain=baidu.com" | jq .

如果使用jq格式化输出,建议先检查是否安装。若不安装,直接去掉| jq .即可。

Java(Spring Boot + RestTemplate)接入示例

import org.springframework.http.*; import org.springframework.web.client.RestTemplate; import java.util.Collections; public class SiteSecurityChecker { private static final String API_URL = "https://v1.apizero.cn/api/site-security"; private static final String API_KEY = System.getenv("API_KEY"); // 从环境变量读取 public static void main(String[] args) { String domain = "baidu.com"; RestTemplate rest = new RestTemplate(); HttpHeaders headers = new HttpHeaders(); headers.setBearerAuth(API_KEY); // 自动添加 Bearer 前缀 headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON)); String url = API_URL + "?domain=" + domain; HttpEntity<String> entity = new HttpEntity<>(headers); try { ResponseEntity<String> response = rest.exchange(url, HttpMethod.GET, entity, String.class); System.out.println("状态码: " + response.getStatusCode()); System.out.println("响应体: " + response.getBody()); } catch (Exception e) { System.err.println("请求失败: " + e.getMessage()); } } }

注意:Maven项目需引入spring-boot-starter-web依赖,或单独使用RestTemplate(非Spring Boot项目需手动添加)。

响应字段全解析(五维评分)

响应JSON结构层次分明,顶层包含codemsgdata。成功时code为0。data对象包含以下字段:

字段类型说明
domainstring请求的域名
overall_scoreint综合评分(0-100)
gradestring等级,A/B/C/D/F
detection_timestring本次检测耗时,单位毫秒,如4521ms
sslobjectSSL证书详情(详见下方)
domain_securityobject域名安全详情
icpobjectICP备案详情
blockedobject微信/QQ拦截详情
performanceobject网站性能评分详情

子对象字段详解

ssl对象
字段类型说明
scoreintSSL维度得分(0-100)
https_enabledboolean是否启用HTTPS
certificate_issuerstring证书颁发机构(可能不存在)
days_until_expiryint证书剩余有效天数
protocolstring支持的TLS协议版本,如TLSv1.2
domain_security对象
字段类型说明
scoreint域名安全得分
expiration_datestring域名到期日期(ISO 8601格式)
registrant_orgstring准备组织(可能为空)
dnssec_enabledboolean是否启用DNSSEC
icp对象
字段类型说明
scoreintICP备案得分
icp_numberstring备案号,如京ICP证030173号
organizationstring备案主体名称
statusstring备案状态,如正常
blocked对象
字段类型说明
scoreint拦截检测得分(越高表示越安全)
wechat_blockedboolean是否被微信拦截
qq_blockedboolean是否被QQ拦截
detailsstring拦截原因说明(如有)
performance对象
字段类型说明
scoreint性能得分
response_time_msint响应时间毫秒数
tls_handshake_time_msintTLS握手耗时
compression_enabledboolean是否启用Gzip/Brotli压缩

完整示例响应(美化后)

{ "code": 0, "msg": "成功", "data": { "domain": "baidu.com", "overall_score": 92, "grade": "A", "detection_time": "4521ms", "ssl": { "score": 100, "https_enabled": true, "days_until_expiry": 365 }, "domain_security": { "score": 85, "expiration_date": "2026-09-01T00:00:00Z" }, "icp": { "score": 100, "icp_number": "京ICP证030173号", "organization": "北京百度网讯科技有限公司" }, "blocked": { "score": 80, "wechat_blocked": false, "qq_blocked": false }, "performance": { "score": 90, "response_time_ms": 180 } } }

常见错误与排查指南

HTTP状态码响应codemsg含义处理建议
2000成功正常处理data
4001001缺少必填参数domain检查请求URL是否包含?domain=
4011002鉴权失败,API Key无效或未提供确认Header名称和Key值,查看文档是否要求Bearer前缀
4031003权限不足,Key无该接口调用权限联系管理员确认API订阅范围
4291020请求频率超过QPS限制(2次/秒)添加本地限流或退避重试
5009999服务内部错误稍后重试,若持续失败反馈技术支持

关键排查点

  1. 域名格式:输入baidu.com而不是https://baidu.comwww.baidu.com(后者也会被处理但可能影响备案查证)。
  2. Header名称:部分客户端默认将Authorization转换为小写,但HTTP头部不区分大小写,通常无影响。若使用curl,请确保-H中的引号正确。
  3. 超时设置:接口检测耗时可能超过5秒,建议客户端超时设为10秒以上。
  4. 空字段处理:某些子对象字段(如certificate_issuer)可能因域名不支持而缺失,代码应做null安全检查。

工程化注意事项

1. 缓存策略

评分结果在短时间内(如1小时内)通常不会剧烈变化,可考虑使用Redis或本地缓存,减少API调用次数。缓存key可设计为site-security:{domain},过期时间设为3600秒。

2. 限流与重试

由于QPS仅2次/秒,建议在客户端做令牌桶限流。若遇到429错误,应采用指数退避(如等待1秒、2秒、4秒后重试,最多3次)。

3. 容错处理

  • 网络超时:捕获SocketTimeoutException,记录日志后跳过或降级。
  • 解析失败:使用try-catch处理JSON解析异常,避免任务中断。
  • 部分字段缺失:使用has()或可选字段占位符,防止NPE。

4. 日志与监控

  • 记录每次请求的域名、响应时间、评分等级,用于后期分析。
  • 对评分低于60(F级)的域名自动触发告警(邮件/钉钉/Webhook)。
  • 监控接口调用成功率,若连续失败超过阈值,暂停调用并人工介入。

5. 测试与验证

建议在沙箱环境先用example.com或自己的测试域名验证功能。注意:example.com可能检测结果不全(如无ICP备案)。正式接入前应覆盖不同等级域名的场景。

参考文档

  • 接口官方文档:https://apizero.cn/aidocs/site-security
  • 原始Markdown文档:https://apizero.cn/aidocs/site-security/raw.md
  • 以上文档包含最新的请求示例、错误码枚举和更新日志。
http://www.jsqmd.com/news/1259878/

相关文章:

  • Claude Code:AI编程助手新范式,对话式代码生成与复杂任务处理
  • 上海车灯升级贴膜去哪?闵行亮车饰澳兹姆授权门店一站式升级全解析 - 国麟测评
  • 深入解析C++ this指针:从原理到实战应用
  • 阿里千问办公平台:智能体架构与钉钉集成开发实战
  • 2026牛杂拌面区域代理:标准化供应链下的多店实践 - 万相科技
  • Dev-C++安装配置与使用指南:轻量级C++开发环境实战
  • C++数位处理实战:从“含k个3的数”解析循环、取模与边界思维
  • PHP+MySQL员工管理系统实战:从环境搭建到安全部署完整教程
  • 2026年淄博本地防划痕隐形车衣哪家专业?口碑实力测评不踩坑 - mypinpai
  • 无人船智能导航:RBF神经网络与自适应滑模控制实践
  • AI招聘工具核心技术解析与落地实践
  • 南海区汽车维修怎么选?车主维保避坑干货与行业盘点 - 国麟测评
  • AI智能体中台架构解析与企业落地实践指南
  • 2026年7月最新上海苹果售后客服中心地址电话及服务网点分布 - 品牌资讯服务
  • 中兴光猫权限解锁实战指南:3分钟获取完整设备控制权
  • 乐山有实力的装修公司推荐,高性价比装修公司靠谱吗? - 装企精灵GEO
  • 5分钟掌握猫抓扩展:网页媒体资源提取的终极解决方案
  • 智能对话系统开发:QwenAgent+LangFuse+DeepEval实战
  • 2026宁波配眼镜口碑好的店在哪?实地探店3家后的真实感受 - 资讯报道
  • C++类设计进阶:从RAII到移动语义的实战指南
  • MotionBERT:跨模态人体运动识别统一框架解析
  • 清华6M参数视听分离模型:实时处理速度提升6倍
  • 深入解析bq24193:开关充电与NVDC电源路径管理实战
  • 厂房翻新树脂瓦厂家推荐,价格透明口碑测评避坑指南 - mypinpai
  • 解锁音乐自由:用QMCDecode在macOS上解密QQ音乐加密格式
  • Godot-MCP:基于MCP协议实现AI大模型与Godot引擎的智能协作开发框架
  • 基于YOLOv11的红外太阳能板缺陷检测系统开发
  • 2026 成都钻戒回收价格参考,50 分到 2 克拉钻石行情区间一览 - 生活时报
  • 2026东营全屋定制与家装怎么选?本地市场分析 + 装修避坑攻略,韵致装饰实践参考 - 国麟测评
  • 国产AI芯片DeepSeekV4的技术突破与应用实践