安全设计
AppCenter 平台会在每次请求中附上 signature、SPI 接口需对 signature 进行校验。若校验失败,则视该通知消息无效。
生成签名
云平台会按照以下步骤生成签名。
-
获取所有的 http get 请求参数。
p1、p2、p3
-
进行字典排序。
sort(p1, p2, p3),假设排序后的顺序是p1、p3、p2
-
生成 signature 值。
base64_encode(HMAC_SHA256(secret_app_key, p1=1&p3=3&p2=2)
secret_app_key:应用创建时,由平台分配,与 sso 密钥不一样,接入方需保存好。secret_app_key可以通过接口重新生成。
示例
用户填写的通知 URL 为:http://www.isvwebsite.com/?p1=1&p2=2&p3=3&signature=qingcloud-app-token[http://www.isvwebsite.com]
SPI 请求:
headers: {'app_signature':'qingcloud-app-token'} url: http://www.isvwebsite.com?p1=1&p2=2&p3=3&signature=qingcloud-app-token
若填写的通知 URL 中本身就含有参数,如:http://www.isvwebsite.com/?p1=1&p2=2&p3=3&signature=qingcloud-app-token[http://www.isvwebsite.com?platform]=qingcloud ,那么http://www.isvwebsite.com/?p1=1&p2=2&p3=3&signature=qingcloud-app-token[platform]也将参与签名。