接口设计规范

接口设计规范

  • 协议:https:ios只能用https
  • 域名: /api.yuming.com/
  • 版本:v1
  • 路径:/ooxx/xxoo
  • 动作:
  • post:新建
  • put:修改(修改后的全量数据)
  • patch:修改(修改哪个传哪个)
  • delete:删除
  • get:查询

接口安全

  • CIA:保密性,完整性,可用性
  • 手机号,身份证号等要脱敏
  • 数据层面
    • sql注入,(id,sql)

    • select * form table where name=(变量;delete table)

    • 过滤 jsoup框架

    • xss: spring-htmlUtils

      • 在正常用户请求中执行了黑客提供的恶意代码, 用户数据没有过滤,转义
    • csrf(跨站伪装请求):人机交互,token

      • 冒充别人的登录信息,问题出在:没有防范不信任的调用
        Java对html标签的过滤和清洗
        https://www.cnblogs.com/qizhelongdeyang/p/9884716.html
      
    • referer:防盗链

    • 数据权限控制

      • link1链接
      • A用户请求,删除 order/a1
      • B用户请求,删除 order/a1

项目中优化的点

  • 开发时用快照版本 生产环境不能用快照版本

  • 通过将数据从堆移到栈中提升效率
  • 常用不变的用缓存,不要用db(把内存用起来减少io ,io是瓶颈,比如网络io,磁盘io)
  • 提高QPS
    • 提高并发数
      • 能用多线程就使用多线程
      • 增加各种连接数,tomcat,mysql,redis等等
      • 服务无状态:便于横向扩展,扩机器
      • 让服务能力怼等(serviceUrl,打乱顺序)
    • 减少相应时间
      • 异步(最终一致性)
      • 缓存