接口设计规范
- 协议: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,打乱顺序)
- 减少相应时间
- 异步(最终一致性)
- 缓存
- 提高并发数