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


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

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

        




  • 相关阅读:
    解决 SQL Server Profiler 跟踪[不断]出现检索数据
    Linq表达式开窍
    CSS3——动画效果
    MongoDB学习与BUG解答
    MongoDB 客户端 MongoVue
    Memcached——分布式缓存
    WRONGTYPE Operation against a key holding the wrong kind of value
    Redis——分布式简单使用
    HTML5——播放器
    HTML5——行走日记
  • 原文地址:https://www.cnblogs.com/caryfang/p/4571950.html
Copyright © 2020-2023  润新知