web安全

身份认证

basic认证

  1. 如果需要认证,服务端返回401(Authorization Required)
  2. 客户端认证时将"用户id:密码"经过base64编码后加上basic(即:Basic Z3Vlc3Q6Z3Vlc3Q=),写入首部字段Authorization
    缺点:
  3. 不安全

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:查看部门成员信息,试图查看薪酬等隐私信息

数据加密

开放授权

会话保持

保存在客户端

session

保存在服务端,一般可以把sessionid放到cookie中,随后通过sessionid去redis查找对应的session信息

jwt

  1. 解决session无法分布式存储问题
  2. 将用户信息通过加密后生成的一个字符串,以后每次请求前端发送jwt到后端,后端可解析出用户信息
    ps:后端不保存用户信息,无状态
posted @ 2022-05-17 20:25  6cc  阅读(46)  评论(0)    收藏  举报