zoukankan      html  css  js  c++  java
  • 访问控制与鉴权设计

    一.访问控制
    为了保证用户不会通过系统发起过多访问导致影响正常用户的体验,每一个API接口都有一定的访问频率限制。
    访问频率主要基于用户来源IP和操作者用户名进行限制。当前的频率限制参数为:1000次/5分钟/接口/用户名(appkey)

    二.调用参数

    三.签名sign原理
    调用API时需要对请求参数进行签名验证,服务器也会对该请求参数进行验证是否合法的。方法如下:
    (1)根据参数名称(除签名和图片)将所有请求参数按照字母先后顺序排序:key + value .... key + value
    例如:将foo=1,bar=2,baz=3 排序为bar=2,baz=3,foo=1,参数名和参数值链接后,得到拼装字符串bar2baz3foo1

    (2)系统同时支持MD5加密方式
    md5:将secret 拼接到参数字符串头加密后,再转化成大写,格式是:byte2hex(md5(secretkey1value1key2value2.))

    操作步骤如下:
    第一步:把参数按Key的字母顺序排序
    第二步:把所有参数名和参数值串在一起
    第三步:使用MD5加密
    第四步:把二进制转化为大写的十六进制

    四、案例
    1. 设定一个密钥,比如key='2323dsfadfewrasa3434',该key只有发送方(如:APP、IOS、ANDROID)和接收方(如:服务器端)知道。
    2. 发送方调用时,通过签名原理生成一个access_key。
    3. 接收方调用时,同样通过签名原理生成一个access_key2。
    4. 比较access_key 和access_key2 内容是否一样。一样则允许操作,不一样,报错返回或者加入黑名单

     

    App开放接口api安全性—Token签名sign的设计与实现

  • 相关阅读:
    ReSharper 10.0.0.2 Ultimate 破解
    Image 和byte[]之间的转换
    IntelliJ IDEA 2016.1.3(64) license server 与汉化
    冒泡排序
    选择排序
    希尔排序
    插入排序
    redis学习笔记——Redis过期键的删除策略
    redis学习笔记——应用场景
    perl学习笔记——字符串和排序
  • 原文地址:https://www.cnblogs.com/linjiqin/p/6015089.html
Copyright © 2011-2022 走看看