• 关于应用的外部接口设计心得


    一、安全
        由于接口是基于HTTP的,也就是完全开放的,设计的接口是否安全,会不会被恶意调用或变为攻击入口,是接口首先要解决的问题。那么直入主题,我是这么设计的。
        1、防止数据串改。(通过为接口增加以下3个参数项,验证数据的完整性)
             1)_key : 这个参数不带入接口,作为调用者和服务端内部商定好的秘钥保存,不得外泄。用于计算签名token值时使用。
             2)random_str:随机字符串,保证每次调用接口时要唯一性。
             3)token:接口调用签名值。
            token参数值的算法是使用接口参数值以字符串形式,按一个固定顺序连接起来,拼接上_key值,再进行MD5加密后所得。当服务端响应时,也按照这个算法来计算token值,然后进行对比,若一致则认为调用者的参数没有变串改。原理是,攻击者不知道_key的值,所以一旦伪造参数,token的值必然失效。

        2、防止重复提交。
            以上的random_str参数能有效的防止相同token值的请求出现,所以在每次请求响应时,持久化保存token值,然后进行排重查询即可。

        




  • 相关阅读:
    总结mysql服务器查询慢原因与解决方法
    mysql查询今天,昨天,近7天,近30天,本月,上一月数据的方法
    Github 终于开始认真考虑开源项目许可证了
    mysql 外连接总结
    MYSQL--事务处理
    MySQL 索引详解
    MySQL数据库优化总结
    Delphi 2010 安装及调试
    Delphi 2010
    PostgreSQL 8.4.1
  • 原文地址:https://www.cnblogs.com/caryfang/p/4571950.html
Copyright © 2020-2023  润新知