最小可运行示例:用curl快速获取网站安全综合评分报告

📅 2026/7/11 22:23:33
最小可运行示例:用curl快速获取网站安全综合评分报告
适用场景在以下场景中快速获取一个域名的安全综合评分能显著提升运维效率域名收购前评估对潜在收购的域名进行SSL证书有效期、ICP备案状态、是否被微信/QQ拦截等检查辅助决策。网站上线前自检发布新站点前通过API批量扫描确保安全配置达标如HTTPS强制开启。定期巡检与告警结合定时任务自动检测域名安全分数变化当等级降至C或D时触发告警。黑产监控实时检测域名是否被腾讯/微信平台拦截及时发现恶意举报导致的封禁。本教程将围绕最小可运行示例展开——你只需要一个curl命令或简单的代码片段就能获得完整的诊断报告不依赖任何外部库或复杂的环境配置。接口能力边界网站安全综合评分接口slug:site-security采用五维加权综合评分模型各维度权重如下维度权重评估内容SSL证书25%是否启用HTTPS、证书剩余天数30天满分域名安全20%WHOIS信息完整性、域名准备时长、whois隐私保护等ICP备案20%域名是否已备案、备案主体是否正常微信/QQ拦截15%域名在微信、QQ内是否被标记为风险或拦截网站性能20%首页响应速度、HTTP/2支持、TLS版本等总分overall_score范围为0-100对应等级grade如下等级分数范围含义A90-100优秀安全配置完善B75-89良好存在少量改进项C60-74中等需关注风险点D40-59较差有显著安全隐患F0-39极差强烈建议修复QPS限制2次/秒超出频率返回429 Too Many Requests。注意本接口仅返回单次快照数据不承诺100%覆盖所有安全维度如部分非公开情报无法获取实际评分以调用时数据为准。请求参数与鉴权请求地址GET https://v1.apizero.cn/api/site-security?domaindomainQuery 参数参数名类型必填说明domainstring是纯域名如example.com不要包含协议、路径或端口Header 参数参数名类型必填说明Authorization/X-API-Keystring是您的API密钥由平台分配注意根据API文档鉴权方式可能为Authorization头或X-API-Key头以下示例使用X-API-Key方式与curl示例一致。请以你的账户密钥对应的格式为准。最小可运行示例curl调用首先你需要获取一个有效的API Key。假设你的Key已经设置到环境变量APIZERO_API_KEY中。完整请求命令curl -sS \ -X GET \ -H X-API-Key: $APIZERO_API_KEY \ https://v1.apizero.cn/api/site-security?domainbaidu.com说明-sS表示静默模式但显示错误-X GET明确指定请求方法-H添加请求头。将baidu.com替换为你需要检测的域名。如果你的Shell不支持直接读取环境变量请直接替换为字符串-H X-API-Key: your-api-key-here。预期响应节选JSON{ code: 0, msg: 成功, data: { detection_time: 4521ms, domain: baidu.com, grade: A, overall_score: 92, ssl: { https_enabled: true, days_until_expiry: 365, score: 100 }, domain_security: { whois_privacy_enabled: true, registration_age_years: 5, score: 85 }, icp: { registered: true, license: 京ICP证030173号, score: 100 }, blocked: { wechat_blocked: false, qq_blocked: false, score: 100 }, performance: { http2_supported: true, response_time_ms: 120, tls_version: TLS 1.3, score: 90 } } }注意实际返回字段可能与上面节选有差异例如部分维度缺失因为检测结果取决于目标域名的实际配置。响应中的code为0表示成功。返回值字段深度解读顶层字段字段类型说明codeinteger业务状态码0成功非0见错误码表msgstring状态描述dataobject检测数据主体data对象字段字段类型说明detection_timestring检测耗时如4521msdomainstring检测的域名gradestring总体等级A/B/C/D/Foverall_scoreinteger五维加权综合得分0-100sslobjectSSL证书维度详情domain_securityobject域名安全维度详情icpobjectICP备案维度详情blockedobject平台拦截维度详情performanceobject网站性能维度详情各子维度对象常见字段sslhttps_enabled: bool – 是否强制HTTPSdays_until_expiry: int – SSL证书剩余有效天数负数表示已过期score: int – 该维度得分0-100domain_securitywhois_privacy_enabled: bool – WHOIS隐私保护是否开启registration_age_years: int – 域名准备年限近似值score: inticpregistered: bool – 是否已备案license: string – 备案号仅当已备案时返回score: intblockedwechat_blocked: bool – 是否被微信拦截qq_blocked: bool – 是否被QQ拦截score: intperformancehttp2_supported: bool – 是否支持HTTP/2response_time_ms: int – 首页响应时间毫秒tls_version: string – 使用的TLS协议版本score: int常见错误与处理HTTP状态码业务code含义处理建议4001003domain参数缺失或格式错误检查传入的域名是否为纯域名不含http://等前缀4011001API Key无效或未提供确认X-API-Key头是否设置正确Key是否过期4291005请求频率超过QPS限制2/s加入限速逻辑或使用退避重试策略5009999服务端内部错误稍后重试若持续失败请参考文档反馈问题典型错误示例{ code: 1003, msg: 参数domain不能为空, data: null }遇到此类错误时请检查你的请求URL是否包含了?domainexample.com且值不为空。工程化注意事项1. API Key安全管理不要在代码中硬编码API Key。推荐使用环境变量或配置中心注入。若使用版本控制确保.gitignore文件排除包含Key的文件。考虑定期轮换Key降低泄露风险。2. 频率限制与重试由于QPS为2当需要批量检测大量域名时建议使用队列控制并发数每次请求间隔至少500ms。捕获429错误后采用指数退避如1s、2s、4s后重试。或使用X-RateLimit-*响应头如果有调整速率。3. 结果缓存网站安全状态不会每一秒都变化对于短时间内的重复查询可以缓存结果例如TTL5分钟。这既能减少API调用也能避免误触频率限制。4. 响应数据校验始终检查code是否为0再解析data。部分子维度对象在某些条件下可能缺失例如备案信息无法查询时icp字段为null代码需做好空值保护。5. 超时设置接口检测可能耗时数秒示例中约4.5秒建议HTTP客户端设置超时至少10秒避免因网络波动导致连接中断。参考文档网站安全综合评分接口文档https://apizero.cn/aidocs/site-security原始Markdown文档https://apizero.cn/aidocs/site-security/raw.md