如何设计一个权限系统
https://www.cnblogs.com/cxydmx/p/11774474.html
权限是用户可以访问的资源,包括页面权限,操作权限,数据权限:
- 页面权限: 即用户登录系统可以看到的页面,由菜单来控制,菜单包括一级菜单和二级菜单,只要用户有一级和二级菜单的权限,那么用户就可以访问页面
- 操作权限: 即页面的功能按钮,包括查看,新增,修改,删除,审核等,用户点击删除按钮时,后台会校验用户角色下的所有权限是否包含该删除权限,如果是,就可以进行下一步操作,反之提示无权限。有的系统要求”可见即可操作”,意思是如果页面上能够看到操作按钮,那么用户就可以操作,要实现此需求,这里就需要前端来配合,前端开发把用户的权限信息缓存,在页面判断用户是否包含此权限,如果有,就显示该按钮,如果没有,就隐藏该按钮。某种程度上提升了用户体验,但是在实际场景可自行选择是否需要这样做
- 数据权限(后端控制): 数据权限就是用户在同一页面看到的数据是不同的,比如财务部只能看到其部门下的用户数据,采购部只看采购部的数据,在一些大型的公司,全国有很多城市和分公司,比如杭州用户登录系统只能看到杭州的数据,上海用户只能看到上海的数据,解决方案一般是把数据和具体的组织架构关联起来,举个例子,再给用户授权的时候,用户选择某个角色同时绑定组织如财务部或者合肥分公司,那么该用户就有了该角色下财务部或合肥分公司下的的数据权限。
- 创建菜单(每个菜单下面包含不同的权限(页面权限和操作权限))
- 创建角色并绑定权限(角色有哪些权限、是否有轮转关系、组织架构变更关系…)
- 给角色增加员工(给对应的角色增加员工(批量导入、按照组织架构、按照职位))
中间人劫持,怎么防止。x-frame-option?白屏的喔,怎么办?也不一定嵌入iframe啊,可以嵌入脚本、图片,怎么阻止
x-frame-option、重定向、https,请求前加密(https、加密代理)、请求中规避(请求拆包)、请求后弥补(前端做一些逻辑)。嵌入非iframe的,如果已经突破了前面两关,走前端逻辑:触发DOMNodeInserted、DOMContentLoaded、DOMAttrModified事件。或者是给能src的标签加上自己的data-xx属性标记区分。
当主机A、和机B通信时,都由主机C来为其“转发”,而A、B之间并没有真正意思上的直接通信,他们之间的信息传递同C作为中介来完成,但是A、B却不会意识到,而以为它们之间是在直接通信。这样攻击主机在中间成为了一个转发器,C可以不仅窃听A、B的通信还可以对信息进行篡改再传给对方,C便可以将恶意信息传递给A、B以达到自己的目的。
一般能防MITM的要具有以下特征:
- 1、握手加密而且具有可信CA(SSL、TLS之类,CNNIC和WoSign就不点评了)或拥有预协商密钥(L2TP)
- 2、加密方法足够强大(AES、CHACHA20之类,RC4和SM2就不点评了)
综上,一般情况下,以下的协议是安全的:
- 1、HTTPS(排除RC4、3DES算法,排除CNNIC、WoSign的CA证书)
- 2、OpenVPN(基于TLS,只要你能连上就是安全的)
- 3、L2TP Over IPSec(必须要Over IPSec,没了就没加密了)
- 4、IKEv2(基于TLS和可信CA发的证书,安全性比OpenVPN还好)
- 5、SSTP(基于TLS和可信CA发的证书,安全性和IKEv2相同,稳定性加强,用443端口)
- 6、ShadowSocks(基于N+1种加密算法,只要你不选RC4或RC4-MD5算法就是安全的)
- 7、任何用SSL Stream过又验证CA甚至客户端证书的TCP连接(UDP大家都懂,DNS什么的)
X-Frame-Options HTTP 响应头是用来给浏览器指示允许一个页面可否在 , 或者
