Lingmoumou's Blog

きっといつかって愿うまま

0%

API安全

API安全的要素

API安全

API安全的目标(CIA)

  • 机密性(Confientiality):确保信息只被预期的读者访问
  • 完整性(Integrity):防止未授权的创建、修改和删除
  • 可用性(Availability):当用户性需要访问API时,API总是可用的

常见的API风险(STRIDE)

  • 欺骗(Spoofing):伪装成某个人
  • 干预(Tampering):将不希望被修改的数据、消息或设置改掉
  • 否认(Repudiation):拒绝承认做过的事情
  • 信息泄露(Information disclosure):将你希望保密的信息纰漏出来
  • 拒绝服务(Denial of Service):阻止用户访问信息和服务
  • 越权(Elevation of Privilege):做了你不希望他能做的事

风险与安全机制的对应关系

  • 认证-欺骗:确保你的用户或客户端真的是他们自己
  • 授权-信息泄露/干预/越权:确保每个针对API的访问都是经过授权的
  • 审计-否认:确保所有的操作都被记录,以便追溯和监控
  • 流控-拒绝服务:防止用户请求淹没你的API
  • 加密-信息泄露:确保出入API的数据是机密的

API安全基本机制

常见的安全机制

流控

使用Guava做简单的限流

继承Spring框架中的OncePerRequestFilter保证一个请求在每个Filter只被执行一次