编程安全方面的考虑
身份验证
通过如下方式验证访问者的身份
- token验证(通过登录接口获取token)
- 约定一个秘钥,使用MD5加密得到签名,通过签名验证(适用于服务器接口间访问)
权限控制
识别出用户身份之后,进行权限验证,考虑权限包括:
- 接口的访问:判断用户是否有访问权限
- 访问的数据:判断用户是否有访问指定数据的权限
- 操作的数据:
- 判断用户是否可以操作(增删改)指定的数据
- 数据在当前状态下是否可以被当前用户修改
- 修改数据状态时,判断是否符合业务前后状态
- 如果用户区分不同角色,修改数据还需要判断用户的角色和角色权限
接口参数验证
- 验证数据格式
- 参数是否必传
- 参数数据类型
- 数据有效性验证
2020-12-15 记录,欢迎读者补充