web应用越权问题的三个解决思路

总体来说,有三个思路,第一个思路是限制好查询权限,对查询的数据进行缓存,修改和删除以查询数据为基准进行限制;第二个思路是针对关键信息计算token返回页面,页面提交的时候,校验关键信息是否被篡改;第三个思路是尽量将关键信息从服务端获取(比如会话中获取),尽量避免根据前端传递的关键信息进行业务操作。

三个思路各有优缺点,实际使用时,可以根据业务场景进行灵活选择和组合使用。在达到安全母的的同时,采用合适的技术思路有利于便捷、高效地解决问题。不能简单地说,哪种思路最好,应该说,适合的就是最好的。

1. 根据查询业务进行处理

针对具体的业务场景,分析关键业务数据,验证业务数据的正确性。

该方案也比较灵活,可以根据具体的业务需求进行灵活处理,一般适合老项目的维护处理。

1.1 添加数据

应对数据的添加权限进行校验,比如普通用户不应该有添加用户的权限。

应对关键的标识数据进行校验,比如添加用户时,添加的用户权限不应该高于操作用户,即低级别权限用户不允许添加比自己权限级别更高的用户,只能添加权限级别小于自身的用户。

1.2 删除数据

删除数据的标识信息,应确保删除数据的标识在查询数据的标识列表中。

1.3 修改数据

删除数据的标识信息,应确保修改数据的标识在查询数据的标识列表中。

1.4 查询数据

每次查询返回数据时,就将数据的标识信息缓存到集合中,并设置到会话中。

2. 采用token进行处理

采用一次一密的自签自验方式。该方案一般适合在项目建设开始的时候进行规划,通过拦截器进行统一处理。

2.1 添加数据

将需要返回页面显示的数据和签名值token一起返回页面,签名值以隐藏输入框的方式保存。当数据提交到后端后,对数据进行签名验证。

2.2 删除数据

将需要返回页面显示的数据和签名值token一起返回页面,签名值以隐藏输入框的方式保存。当数据提交到后端后,对数据进行签名验证。

2.3 修改数据

将需要返回页面显示的数据和签名值token一起返回页面,签名值以隐藏输入框的方式保存。当数据提交到后端后,对数据进行签名验证。

2.4 查询数据

查询数据,根据用户的权限标识和数据之间的关联关系进行限制。

3. 关键数据从后端获取

关键数据包括当前用户的身份标识,权限和角色标识等。

该方案具有较强的灵活性,可以广泛地应用在新老项目的越权问题解决上。

3.1 添加数据

添加数据时,如果需要在数据设置操作用户信息,则可以直接从后端进行设置。

3.2 删除数据

删除数据时,需要设置当前的操作用户标识信息,在数据库操作层面,需要对用户的删除操作进行关联确认,确保删除操作在权限范围内。

3.3 修改数据

比如修改当前登录用户自己的密码,此时用户标识就应该是从后端会话中获取,不适合根据前端回传用户标识。

修改数据的步骤一般是先查询出数据信息,然后再对其中的部分数据进行修改保存,修改保存时,需要确保数据的关键信息从后端获取(比如查询时,放置到会话中)。

3.4 查询数据

查询数据根据当前用户身份标识信息,传递到查询sql进行关联查询,身份标识信息直接从后端获取,避免根据前端传入进行查询。再结合sql中的权限关联关系,可以确保查询返回数据在当前操作用户的权限范围内。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值