总体来说,有三个思路,第一个思路是限制好查询权限,对查询的数据进行缓存,修改和删除以查询数据为基准进行限制;第二个思路是针对关键信息计算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中的权限关联关系,可以确保查询返回数据在当前操作用户的权限范围内。

web应用越权问题的三个解决思路相关推荐

  1. html 重复提交表单,表单重复提交问题的三种解决思路

    前端开发中接触的表单提交还是很多的,有时候如果不对提交事件进行处理的话会遇到重复多次提交. 最近开发遇到一个问题,找了挺久才找到原因解决-_-||,表单一直提交两次,以为是双击重复提交了,就在提交之后 ...

  2. default web site(已停止)无法启动的解决思路

    在按照网上的教程配置完iis后,打开iis管理器检查是否配置成功时,发现default web site显示已停止. 按照网上给出的解决办法: https://cloud.tencent.com/de ...

  3. 缓存雪崩是什么?以及解决思路

    一.什么是缓存雪崩     缓存雪崩就是指缓存由于某些原因(比如 宕机.cache服务挂了或者不响应)整体crash掉了,导致大量请求到达后端数据库,从而导致数据库崩溃,整个系统崩溃,发生灾难. 下面 ...

  4. JAVA Web项目中所出现错误及解决方式合集(不断更新中)

    JAVA Web项目中所出现错误及解决方式合集 前言 一.几个或许会用到的软件下载官网 二.Eclipse的[preferences]下没有[sever]选项 三.Tomcat的安装路径找不到 四.T ...

  5. 2022年,树莓派搭建web服务器,加各种bug的解决

    2022年,树莓派搭建web服务器,加各种bug的解决 配置: 1.树莓派3B+ 2.树莓派系统:2022-1-28 桌面版 文章目录 2022年,树莓派搭建web服务器,加各种bug的解决 一.首先 ...

  6. 【Flutter web】内网网站如何发布?解决外网下canvaskit.js和字体无法加载问题

    背景 由于部署的网站只能在内网下使用,部署服务器又不能访问外网,导致Flutter web部署遇到很多问题,比如:白屏. 部署的网站为何首次加载缓慢,会白屏? 通过浏览器开发工具看图: 可以看到css ...

  7. WEB站点使用企业库安全性异常解决办法

    WEB站点使用企业库安全性异常解决办法 我们在WEB站点使用企业库的时候,有时候会有如下的异常产生: 安全性异常     说明: 应用程序试图执行安全策略不允许的操作.要授予此应用程序所需的权限,请与 ...

  8. eclipse下tomcat添加部署Module,Web名称与项目名称不一致的解决方法

    eclipse下tomcat添加部署Module,Web名称与项目名称不一致的解决方法 参考文章: (1)eclipse下tomcat添加部署Module,Web名称与项目名称不一致的解决方法 (2) ...

  9. web开发中目录路径问题的解决

    web开发中目录路径问题的解决 参考文章: (1)web开发中目录路径问题的解决 (2)https://www.cnblogs.com/freeweb/p/4751403.html 备忘一下.

最新文章

  1. 查询两张表 然后把数据并在一起_工作表数据查询时,类似筛选功能LIKE和NOT LIKE的应用...
  2. C语言:随笔7--预处理命令
  3. jQ进阶篇--jQuery封装placeholder效果,让低版本浏览器支持该效果
  4. Rsync 基本安装及同步(一)
  5. eclipse创建Maven的动态web工程
  6. 2017.9.21 紧急集合 思考记录
  7. FPGA复位激励编写(方法三)
  8. php图片写入带问号_php-fpm Remote Code Execution 分析(CVE-2019-11043)
  9. 波形包络提取与峰值提取_一个简单的波形包络提取算法
  10. 将mysql数据库批量导出为word三线表格形式
  11. DAMA数据管理知识体系指南-读书笔记9
  12. 全市场等权中位数_市场指数估值周报20200412
  13. 【Servlet入门】一篇文章让你从没听过到了熟于心
  14. (转)东方美人吉他谱及演奏(中川砂仁)
  15. 一篇文了解电商直播的优势和平台
  16. UWP中的Direct2D
  17. 使用域名访问后台系统、Nginx反向代理服务器
  18. 平面设计怎么学,平面设计怎么学排版:夏雨老师
  19. 【蓝桥杯—单片机学习笔记(四)】共阳数码管的动态显示
  20. 你了解石墨烯的特性、应用?都有什么?

热门文章

  1. 生成 App 专用密码 [How to generate an app-specific password]
  2. [AWCC]DELL WINDOWS10 无法打开这个应用 请去windows 应用商店查看有关alienware command centor的更多信息 解决办法
  3. matlab step函数跟踪斜坡信号及阶跃响应绘图
  4. 从今天开始,记录工作、学习和生活点滴。
  5. python 1到100的质数
  6. 2021年广东省高新技术企业认定时间安排汇总大全
  7. 【深度学习】使用深度学习检测混凝土结构中的表面裂缝
  8. MindManager2020官方免费版下载激活版思维导图
  9. 快问快答--RBP是如何训练神经网络的,它的优缺点是什么?
  10. PCB之AD导入logo