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


    1.安全

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

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

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

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

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

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

    2.幂等性

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

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

    3.防止暴力压测

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

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

    4.限流:

      另一篇

    5.调用方管理

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

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

    待补充。。。  

  • 相关阅读:
    判断广播是否已注册
    Android 之使用LocalBroadcastManager解决BroadcastReceiver安全问题
    Android BroadcastReceiver 注册和反注册
    关于Android TaskAffinity的那些事儿
    文件读取方法(FileHelpers) z
    FileHelpers 用法 z
    tdf sample
    打开文件
    async/await 异步编程
    使用Topshelf创建Windows服务
  • 原文地址:https://www.cnblogs.com/lqlqlq/p/14052962.html
Copyright © 2020-2023  润新知