• 对外接口需要注意的事项


    1.安全

      之前做的一个在校项目,没有用 https 之前是明文传输账号密码的,被校内安全检测部门责令整改......

      用了 https 也可能因为用户操作不慎,被中间人攻击,这时候就算是 账号密码被加密,但是加密用的公钥是攻击者的,私钥也在攻击者那里 所以也会被破解。

      需要和前端协商好加密的方式 和密钥,如果单纯只用 RSA 这种高消耗的非对称加密的话,性能可能吃不消,如果用户量一大的话,如果用对称加密的话,又要保证密钥交接的过程中不被偷取

      最后因为这个项目用户量不多,只有几百人,最后还是用 RSA 非对称加密了......

      公私钥写死,公钥写死在前端,后端。虽然有可能被暴力破解,但是可能性不大,另外 还有 https 加持,安全性应该还可以。

      如果要求性能的话,就要模拟 https 那样,先非对称,用非对称加密 传输 对称加密的密钥后,再用对称加密。

    2.幂等性

      类似情景:用户发过来的订单请求包可能在网络的某个节点因为错误,拷贝了两份,这样的话就需要对这两份包而言,只会执行一次真正的业务操作。

              具体实现可以用 随机 Token 等 策略

    3.防止暴力压测

      攻击者可能无法修改 数据包里的数据,也无法实时加密合成出合法的包,但是他可以用合法的包做为请求数据,压测服务器。

      这样的话,就要设置包的过期时间,免得同一个包长期有效,这样的话攻击者只用拿一个包就能疯狂压测服务

    4.限流:

      另一篇

    5.调用方管理

      类似微信小程序的 接口,需要调用方提供 appid

      并且如果调用发有违法行为,就封禁此 appid

    待补充。。。  

  • 相关阅读:
    心情记录&考试总结 3.30
    BZOJ 1982 Moving Pebbles
    BZOJ 3759 Hungergame
    51Nod 算法马拉松12 Rikka with sequences
    51Nod 算法马拉松12 移数博弈
    BZOJ 3720 gty的妹子树
    BZOJ 4184 shallot
    BZOJ 3160 万径人踪灭
    好好学习天天向上
    java解析json字符串
  • 原文地址:https://www.cnblogs.com/lqlqlq/p/14052962.html
Copyright © 2020-2023  润新知