网站安全综合评分API全参数拆解:请求、响应与工程落地方案
适用场景与接口能力边界网站安全综合评分API/api/site-security提供了一站式的域名安全检测能力通过SSL证书、域名安全、ICP备案、微信/QQ拦截和网站性能五个维度加权计算输出0-100的综合分数及A/B/C/D/F等级。一次请求即可获得全面的诊断报告适用于以下场景安全巡检自动化定期对管理的大量域名进行安全态势扫描生成趋势报告。CDN或云服务商在用户接入域名时自动校验其安全合规状态。运维监控看板将评分数据嵌入实时监控系统快速定位安全短板。能力边界支持的输入纯域名如example.com不能包含协议头或路径。输出范围每项子维度评分0-100总分0-100等级A≥90、B80-89、C70-79、D60-69、F60。QPS限制2次/秒超出返回429状态码。检测时间通常2-5秒受目标服务器响应速度影响。请求参数详解Query与HeaderQuery参数参数名必填类型说明示例domain是string待检测的域名不含http/https不含路径。baidu.comHeader参数参数名必填类型说明Authorization是stringAPI鉴权密钥需替换为实际申请的Key。注意实际调用时Header名称为Authorization值为Bearer YOUR_API_KEY或直接填入Key以文档为准。在curl示例中可能使用X-API-Key请以最新文档为准。鉴权方式该API采用请求头鉴权需在每次请求中携带有效的API Key。申请方式请参考官方文档参考文档。建议将Key存储在环境变量或密钥管理服务中避免硬编码。请求示例curl与Java代码curl示例可复制运行# 替换 YOUR_API_KEY 为实际密钥 export API_KEYYOUR_API_KEY curl -sS \ -X GET \ -H Authorization: Bearer $API_KEY \ https://v1.apizero.cn/api/site-security?domainbaidu.com | jq .如果使用jq格式化输出建议先检查是否安装。若不安装直接去掉| jq .即可。JavaSpring 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; HttpEntityString entity new HttpEntity(headers); try { ResponseEntityString 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结构层次分明顶层包含code、msg和data。成功时code为0。data对象包含以下字段字段类型说明domainstring请求的域名overall_scoreint综合评分0-100gradestring等级A/B/C/D/Fdetection_timestring本次检测耗时单位毫秒如4521mssslobjectSSL证书详情详见下方domain_securityobject域名安全详情icpobjectICP备案详情blockedobject微信/QQ拦截详情performanceobject网站性能评分详情子对象字段详解ssl对象字段类型说明scoreintSSL维度得分0-100https_enabledboolean是否启用HTTPScertificate_issuerstring证书颁发机构可能不存在days_until_expiryint证书剩余有效天数protocolstring支持的TLS协议版本如TLSv1.2domain_security对象字段类型说明scoreint域名安全得分expiration_datestring域名到期日期ISO 8601格式registrant_orgstring准备组织可能为空dnssec_enabledboolean是否启用DNSSECicp对象字段类型说明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成功正常处理data4001001缺少必填参数domain检查请求URL是否包含?domain4011002鉴权失败API Key无效或未提供确认Header名称和Key值查看文档是否要求Bearer前缀4031003权限不足Key无该接口调用权限联系管理员确认API订阅范围4291020请求频率超过QPS限制2次/秒添加本地限流或退避重试5009999服务内部错误稍后重试若持续失败反馈技术支持关键排查点域名格式输入baidu.com而不是https://baidu.com或www.baidu.com后者也会被处理但可能影响备案查证。Header名称部分客户端默认将Authorization转换为小写但HTTP头部不区分大小写通常无影响。若使用curl请确保-H中的引号正确。超时设置接口检测耗时可能超过5秒建议客户端超时设为10秒以上。空字段处理某些子对象字段如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. 日志与监控记录每次请求的域名、响应时间、评分等级用于后期分析。对评分低于60F级的域名自动触发告警邮件/钉钉/Webhook。监控接口调用成功率若连续失败超过阈值暂停调用并人工介入。5. 测试与验证建议在沙箱环境先用example.com或自己的测试域名验证功能。注意example.com可能检测结果不全如无ICP备案。正式接入前应覆盖不同等级域名的场景。参考文档接口官方文档https://apizero.cn/aidocs/site-security原始Markdown文档https://apizero.cn/aidocs/site-security/raw.md以上文档包含最新的请求示例、错误码枚举和更新日志。