• API接口签名校验


    在开发app中,我们经常要为app提供接口。但是为了保证数据的安全,我们通常会对接口的参数进行加密。

    1.不验证的接口api

    api接口请求,"http://www.xx.com/getUser/?a=1&b=2" 

    这样的接口中非常粗暴。恶意者可以通过修改参数去拉取数据。对数据不安全。增加api接口额外的调用。

    2.带签名的接口调用

    给参数的appid和appsercert。然后后端存储appsercert。前台通过将appid和参数一起加密。生成sign。后端用appsercert进行校验。

    /get/user?a=11&key=222&appid=test&sign=sfsfssfsdfsd

    将所有的参数按字典序进行排序,然后最后加上appidsercet加入到尾部。进行md5 生成sign、

    <?php
    
    function sign($arr,$key)
    {
         ksort($sign);
         $temp = expload("",$arr);
         $temp .= $key;
         return md5($temp);
    
    }
    
    ?>
    

     

    3.请求的唯一性

    上面的请求中,我们看到,我们通过sign和key 对 同一个请求,可以不停的进行请求,因为这都是合法的。所有我们需要进行将请求唯一性校验。

    在请求的参数中加入timestamp 时间戳参数。 用户请求后,该请求进行有效期校验。如果过期则无效。

     

  • 相关阅读:
    公司的CMS参数
    Kafka 如何保证消息可靠性
    我来了
    spring解决乱码
    mybatis反向工程
    Unicode控制字符
    功能跟进记录
    创建IDataProvider实例
    腾讯2016研发工程师笔试题36车 6跑道 没有计时器 最少要几次取前三
    .net mvc下拉列表DropDownList控件绑定数据
  • 原文地址:https://www.cnblogs.com/tl542475736/p/7791907.html
Copyright © 2020-2023  润新知