php 接口安全性,开发者,服务提供商

1. 角色:

    服务提供商
    开发者

2. 大概流程
开发者:
1. 开发者在服务提供商那边添加应用,服务提供商分配appid,appkey
2. 签名
   参数ACSII从小到大排序
   参数值为空不参与签名
   参数名区分大小写
php为例
   $params = ksort($params);        //参数ACSII从小到大排序
   ....循环拼接....                 //参数循环名,值字符串 &连接
   $params .= "key=".$appkey;       //拼接密钥 
   $sign = strtolower(md5(params)); //生成签名,转换为小写
   
3. 接口请求
原参数带上sign参数,sign值为签名后的字符串
eg:
platform 1
uid     2016539
sign 25B8EFA53D7D6AE5D136CAEB0E2D4E1A
appid 4
username m258369
nonce_str  12552355 //随机字符串


服务提供商:
1. 验证appid是否存在,有,得到appkey
2. 签名验证,保证参数是否完整,没有篡改过(传过来的参数,去掉sign参数,组装生成签名与sign参数比较,如果相等,签名通过,如果不相等,签名不通过,数据被更改过)

3. 签名通过,求接口数据

          

  • 确认哪位用户在做 API 请求。因为在发送请求前需要用户指定生成数字签名的秘钥对,在服务端即可通过该秘钥对确定用户身份,进而可做访问权限管理。
  • 确认用户请求在网络传输过程中有无被篡改。因为服务端会对接收到的请求内容重新计算数字签名,一旦请求内容在网络上被篡改,则无法通过数字签名比对。

数字签名是个加密的过程,数字签名验证是个解密的过程。(appid 公钥  appkey私钥)

数字签名是非对称密钥加密技术数字摘要技术的应用。


更多:https://help.aliyun.com/document_detail/29012.html?spm=a2c4g.11186623.6.773.78y3gq

          https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=4_3



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值