web安全
身份认证
basic认证
- 如果需要认证,服务端返回401(Authorization Required)
- 客户端认证时将"用户id:密码"经过base64编码后加上basic(即:Basic Z3Vlc3Q6Z3Vlc3Q=),写入首部字段Authorization
缺点: - 不安全
form表单认证
权限控制
DAC 自主访问控制(Discretionary Access Control)
每个用户对自己的资源拥有自主权,同时也可赋予改资源权限给别人(权限可传递),即权限由用户自己管控,如操作系统文件权限、mysql权限
缺点:权限过于分散
MAC 强制访问控制(Mandatory Access Control)
权限统一交由系统管理员管控,并且将权限化为各等级,每个用户对应不同等级
缺点:不灵活
RBAC 基于角色的访问控制(Role-Based Access Control)
在用户、权限之间引入"角色(role)"概念,每个用户关联多个角色,每个角色关联多个权限
ABAC 基于属性的访问控制(Attribute Based Access Control)
根据属性制定策略来动态判断授权,即相当于加入if
例:如果是男(属性)用户就有某些权限
越权:
前端越权
无权限的页面,通过URL也无法访问
无权限的操作,交互入口应该不展示
无权限的数据,在列表中也不会展示
权限限制需要前后端都做限制,接口鉴权也是要有的
横向越权
尝试访问同级别的无权限数据,通过遍历id或者伪造请求等方式
eg:访问其他未授权文件夹内的数据
纵向越权
尝试访问当前权限范围,但是未授权的字段或者敏感信息
eg:查看部门成员信息,试图查看薪酬等隐私信息
数据加密
开放授权
会话保持
cookie
保存在客户端
session
保存在服务端,一般可以把sessionid放到cookie中,随后通过sessionid去redis查找对应的session信息
jwt
- 解决session无法分布式存储问题
- 将用户信息通过加密后生成的一个字符串,以后每次请求前端发送jwt到后端,后端可解析出用户信息
ps:后端不保存用户信息,无状态

浙公网安备 33010602011771号