跳到正文

网关认证

API 网关认证

接口地址

https://api.f.360.cn

通信协议

所有接口均通过 HTTPS 协议进行通信,提供高安全的通信通道。

认证机制

调用 SAFE 网关接口时,需要在 HTTP Header 中携带认证信息。

Header类型是否必填说明
X-360-Keystring是应用 AppID(即个人中心 APIKEY)
X-360-Noncestring是8位随机字符串,用于防重放攻击
X-360-Timestampstring是当前 Unix 时间戳(秒)
X-360-Signaturestring是请求签名
Content-Typestring是根据具体接口选择

签名算法

签名用于验证请求合法性并防止参数篡改。

签名公式

X-360-Signature =MD5(MD5(body) + X-360-Key + X-360-Nonce + X-360-Timestamp + SECRET)[16:]

说明:

  • MD5 结果均为 32位小写十六进制字符串
  • [16:] 表示取 MD5 结果第 17 个字符开始到结尾(下标从 0 开始)
  • SECRET(即个人中心 SALT)

Ti 网关认证

请求地址

https://api.ti.360.net

通信协议

所有接口均通过 HTTPS 协议进行通信,提供高安全的通信通道。

认证方式

情报订阅API网关采用统一标准的认证方式,具体的请求认证参数见下表:

参数名称类型是否必填位置说明
X-Api-Keystring是Header申请的apikey,请在360安全大脑申请
timestampstring是Header获取当前设备的秒级时间戳,当此时间戳与云端时间相差3600秒时,校验失败
X-Accept-Languagestring否Header默认为zh,返回中文信息,传en为英文信息
signstring是Header认证签名:

sign=md5($timestamp$salt),即:将参数timestamp的值和盐值salt进行字符串首尾拼接得到新字符串,再对该字符串进行md5运算。

其中,salt请在360安全大脑申请。

响应状态码

适用于除情报IOC对外输出统一接口、IP地理位置信息查询、ICP备案信息查询外所有接口

状态码说明
2000查询成功
9001网关身份认证错误/upstream身份认证错误
9002参数格式错误
9003授权服务接口内部错误/upstream接口内部错误
9004网关访问过于频繁/upstream访问过于频繁
9005资源路径不存在
9006IP受限
9007未知错误

因网关接口版本更新,适用于情报IOC对外输出统一接口、IP地理位置信息查询、ICP备案信息查询外所有接口

响应内容备注
{
  "code": "0",
  "xxx": "xxx"
}
查询成功
{
  "code": "GC00101",
  "src": "apiholder",
  "msg": "no X_360_key header"
}
appid(即 APIKEY)不存在、缺失X-360-Key请求头
{
  "code": "GC00102",
  "src": "apiholder",
  "msg": "unlegal appid"
}
appid(即 APIKEY)不合法,请检查appid或发送邮件申请开通
{
  "code": "GC00103",
  "src": "apiholder",
  "msg": "appid expired"
}
appid(即 APIKEY)已过期,需发送邮件申请延期
{
  "code": "GC00105",
  "src": "apiholder",
  "msg": "appid over field"
}
没访问权限的接口,需发送邮件申请开通
{
  "code": "GC00102",
  "src": "apiholder",
  "msg": "timestamp format"
}
时间戳格式错误
{
  "code": "GC00103",
  "src": "apiholder",
  "msg": "timestamp over"
}
时间戳已过期
{
  "code": "GC00102",
  "src": "apiholder",
  "msg": "nonce format"
}
X-360-Nonce串格式错误
{
  "code": "GC00104",
  "src": "apiholder",
  "msg": "nonce repeat"
}
请求重放,X-360-Nonce串重复
{
  "code": "GC00105",
  "src": "apiholder",
  "msg": "break by whitelist"
}
IP白名单限制
{
  "code": "GC00105",
  "src": "apiholder",
  "msg": "break by auth"
}
签名认证失败,请检查签名串生成
{
  "code": "GC00104",
  "src": "apiholder",
  "msg": "body too big"
}
请求body超过150M上限
{
  "code": "GC00104",
  "src": "apiholder",
  "msg": "path expired"
}
接口访问权限已过期,需发送邮件申请延期
{
  "code": "GC00104",
  "src": "apiholder",
  "msg": "path qps too high"
}
突破qps限制,需减少请求频次
{
  "code": "GC00105",
  "src": "apiholder",
  "msg": "break by quantity"
}
突破流量限制,需在第二天0点后重新发起请求,或找管理员提升阈值
{
  "code": "GC00101",
  "src": "apiholder",
  "msg": "param mapping"
}
请求参数错误,缺少必要参数
{
  "code": "GC00106",
  "src": "apiholder",
  "msg": "deal plugin err, please check body and try again"
}
接口请求失败,请检查请求报文
{
  "code": "GC00102",
  "src": "apiholder",
  "msg": "http request fail, please check request body"
}
接口请求失败,请检查请求报文
{
  "code": "GC00107",
  "src": "apiholder",
  "msg": "backend server resource path does not exist"
}
后端资源不存在,请联系管理员排查
{
  "code": "GC00201",
  "src": "apiholder",
  "msg": "backend server unhealthy, please try again"
}
接口状态异常,请重试
{
  "code": "GC00201",
  "src": "apiholder",
  "msg": "backend server unhealthy, already circuit breaker"
}
接口状态长期异常,已熔断保护,请联系管理员排查