Web应用界面权限控制要点总结
概述
这里所说的Web应用界面包含两类界面:
- 第一类 : UI界面。
- 第二类 : Web API接口(接口界面一般不面向用户,而是面向浏览器端代码)。
为什么说有这两类界面呢? 原因很简单:这两类界面都对外暴露,无论是暴露给用户还是其他代码访问者。
UI界面,自然不用说了,它通过浏览器暴露给用户用于和系统进行人机交互,这种暴露一般也是UI界面存在原本的目的。而另外一种界面,Web API接口原本是为了浏览器Web逻辑进行正常的服务端数据访问,但实际上,本系统用户有可能通过修改输入URL的方式试图直接访问一些未授权的页面或数据,另外还有一些恶意访问者对这些接口发起一些不怀好意的请求。所以,对于所有这些请求,我们也要做相应的验证和权限检查。
要点总结
UI界面
页面导航菜单树 – 根据用户权限生成针对该用户的页面导航菜单树
修改/删除/禁用/启用/通过/拒绝/撤销等对某些数据实体进行修改性或者控制性操作的按钮/链接
- 有权限 - 展示且可用
- 无权限
- 展示且可用 – 通过请求结果碰撞得到不可操作提示,目标操作被拒绝
- 展示但禁用 – 看得到但是不可操作
- 不展示 – 用户看不到该操作选项
页面跳转按钮/链接
- 有权限 - 展示且可用
- 无权限
- 展示且可用 – 通过请求结果碰壁,被提示无权访问
- 展示但禁用 – 看得到但是不可点击
- 不展示
页面上权限相关的数据展示区
- 有权限 - 展示
- 无权限 - 隐藏
数据列表展示
用户对一些业务数据的可见性是受控的,比如当地业务负责人只能看到本地的业务数据,那么上海的负责人看到北京地区的业务数据就是个错误。这个问题表面上看页面数据展示问题,如果深入一点考虑到分页过滤等因素,那么在后端服务逻辑查询相应数据的时候,就需要将用户对业务数据的可见性考虑进去。
Web API界面
- 控制器方法
- 需要检查用户身份和权限以确保请求符合安全设定
Web应用界面权限控制要点总结相关推荐
- web业务系统权限控制
来源:http://blog.chinaunix.net/u1/52224/showart_410119.html 在以往的系统设计中,要么缺乏权限控制,要么就是权限控制很简单,,要么权限控制功能虽然 ...
- django web 自定义通用权限控制
需求:web系统有包含以下5个url,分别对于不同资源: 1.stu/add_stu/ 2.stu/upload_homework/ 3.stu/query_homework/ 4.stu/add_r ...
- (转)基于MVC4+EasyUI的Web开发框架形成之旅--权限控制
http://www.cnblogs.com/wuhuacong/p/3361351.html 我在上一篇随笔<基于MVC4+EasyUI的Web开发框架形成之旅--框架总体界面介绍>中大 ...
- 前端真的能做到彻底权限控制吗?
有一天突然想到一个问题,web端的权限控制: 1.真的能控制权限吗? 2.仅仅靠前端,能不能做到真正的权限控制? 3.如果需要后台配合,应该如何配合? 可能这是一个老生常谈的问题,但还是想整理下,有误 ...
- 企业级项目|用Python进行web开发企业统一用户认证和权限控制平台
目前大家对Python的了解更多来源是数据分析.Ai.运维工具开发,在行业中使用Python进行web开发,同样也是非常受欢迎的,例如:FaceBook,豆瓣,知乎,饿了么等等,本文主要是介绍是利用P ...
- 在ASP.NET MVC里对Web Page网页进行权限控制
我们在ASP.NET MVC开发时,有时候还是得设计ASP.NET的Web Page网页(.aspx和.aspx.cs),来实现一些ASP.NET MVC无法实现的功能,如此篇<Visual S ...
- web安全编程——权限的分配和控制
web安全编程--权限的分配和控制 2009-07-02 15:46 通常权限划分是为了控制数据和功能的使用范围.传统的划分方法一般将用户划分为匿名用户.普通登录用户.管理员用户.我们暂时将以上三 种 ...
- springboot 按钮权限验证_SpringBoot中实现Shiro控制ThymeLeaf界面按钮级权限控制
需求简述 在业绩核算系统中,我们使用了SpringBoot作为项目的整体架构,使用ThymeLeaf作为前端界面框架,使用Shiro作为我们的权限控制框架,Shiro作为轻量级的权限框架,使用起来非常 ...
- 案例分享:Qt激光加工焊接设备信息化软件研发(西门子PLC,mysql数据库,用户权限控制,界面设计,参数定制,播放器,二维图,期限控制,参数调试等)
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/127669684 长期持续项目技术分享,有专业Qt需求请 ...
最新文章
- ADT,Eclipse启动时在Android SDK Content Loader0%无法编译
- java基础入门课后习题_《Java基础入门》课后习题及答案
- acer switch 10 linux,【AcerSwitch10评测】高颜值的2in1电脑 Acer Switch 10评测_Acer Switch 10_笔记本评测-中关村在线...
- PKUSC2018训练日程(4.18~5.30)
- 浅析二层工业交换机的特点
- ZJUT 地下迷宫 (高斯求期望)
- 管程理解及用管程实现生产者消费者问题
- 华为机试HJ10:字符个数统计
- Java如何进行Base64的编码(Encode)与解码(Decode)
- 【EXLIBRIS】随笔记 009
- 教你如何写第一个jsp页面
- Redux Reducer
- 活体检测Face Anti-spoofing前世今生:作者(Fisher Yu )
- 毕业答辩的PPT攻略
- 计算机毕业设计php+vue基于微信小程序的音乐播放器系统
- 六、Java中常用的API(通过包进行分类)————File类、IO流
- mysql类型转换及小数点保留问题(cast函数)
- apptest.java_geetest-java
- 中兴B863AV3.2-M_专用线刷刷机固件包及教程(线刷后不再需要卡刷)
- 中国 KubeCon + CloudNativeCon 演讲提案征集
热门文章
- 基于Filebeat+Kafka+Flink仿天猫双11实时交易额
- 2021-2025年中国减肥轮椅行业市场供需与战略研究报告
- 浏览器 - 设置头部兼容模式
- Spring5(引用-->狂神学习笔记)2021-08
- java毕业设计花店管理系统(附源码、数据库)
- pdd为什么下架iPhone12了 拼多多等电商平台不能买iPhone12了?
- 2022年12月10日(星期六):骑行樱花谷
- 子网掩码必须是相邻的是什么意思_子网掩码必须是相邻的是什么意思 您输入一个无效的子网掩码...
- Go微服务实战1:为什么是go
- 一加6android9上手体验,一加6月牙白快速上手体验!除了双8配置还真爽!