`
Tiwen
  • 浏览: 86221 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java权限设计探讨--释放用户特权(初篇)

阅读更多

     权限设计对于系统来说是一套资源防御系统,避免不同用户种类越权使用。这几天看了一些权限设计设计,但还是感觉他们似乎还是有点欠缺,首先我比较关注RBAC,RBAC提供3套权限设计模式。
    首先看第一种RBAC0,RBAC0 定义了能构成一个RBAC控制系统的最小的元素集合,这种模式是早期业界非常普遍的模式,让用户关联角色,角色组合多个权限资源。但现在的业务越来非常,要求人性化更多一点,设计更合理些,加入用户需要超越自己所在的角色扩展其他的权限,就会带来很大困难的扩展。
    RBAC1,RBAC1 引入角色间的继承关系.这个突破带来了角色之间的继承关系,从而让一个用户由可以充当多种角色。可以说这是权限发展史上的一种趋势。
    但总体来看,RBAC没有让用户,角色和权限之间得到很好的整合,大多还是困在用户这里,试想,如果用户拥有的角色其实可以充当一个中许可证,一个用户有可以拥有多张许可证,这是理所当然的事,然能否再用一个对指定资源特殊的许可证呢?这就是我想的用户既然可以拥有角色,但同样也可以拥有指定的一些权限,这种而外分配的权限可以说是这个用户的特权(注意,不是角色,因为扩充角色特权那就让其他拥有此角色的用户同时拥有,这样的做法不是我所要讨论的扩展)。好了,如果形成这样的关系,就可以释放用户与角色之间的强捆绑了。
    但我还是觉得这样做是否合理,一个模块和多个操作,形成了一资源,这些资源是被保护的,如果添加模块,就要配置这些资源,但添加的模块又不可能在操作表名的动作都有,这样又要添加操作类型,权限验证的时候又需要到关系库中检查一下,其实,我觉得一个模块对应的操作不该由模块表和操作类型表配置来决定,因为他们可能是一个模块特有,这中间可能包括了权限继承关系,比如一个用户模块权限有read,add,modify,delete,query,all,注意这个ALL权限一旦有用,这会包含他所有的操作,有删除会有读取,这样当我们给与删除权限的时候其实read权限也就包含进去了,现在有一个管理员管理模块权限有read,add,modify,delete,query,reset_password,modify_password,all,定这些操作应为设计到管理员相关的操作,我们看这个模块比用户模块多了2个权限,这些特殊的权限应该是配置,这种权限继承关系也应该是定制的,网上发布的2的N此方整数组成的集合,素数分解等都是不错的权限继承办法。那是不是让我们在系统中扩展这些类就可以了列?是的,这样做的好处有:1.避免后台资源配置错误导致权限验证出现问题;2.获取管理员所有权限后直接在web层验证;3.可以设计自己的权限继承算法。
    说到这里,为什么说这个问题呢,因为我的主题是JAVA权限,JAVA已经提供了sucrity包,别忘了还有annotation。它可以帮我们条用指定方式的时候去用哪个定制的权限类去做验证。这样一来权限的问题可以得到灵活的扩充了,可能现在在这里一时无法说完整,但这个JAVA权限设计我已经开始设计,在设计完后希望和大家继续探讨。

分享到:
评论

相关推荐

    Java 安全编程 .pdf

    Java作为一种广泛使用的编程语言,在设计之初就考虑到了安全因素,其内置了许多安全机制。然而,即便是这样一种安全的语言,如果开发者忽视了一些重要的安全实践,仍然可能导致安全漏洞。《Java安全编程》这份资料...

    Java 2 平台安全技术——结构, API 设计和实现

    `java.security.AccessController`和`java.security.PrivilegedAction`接口则用于实现权限检查和特权上下文管理。 在实现层面,Java使用了两种主要的技术:权限(Permissions)和访问控制上下文(Access Control ...

    计算机客房管理系统毕业设计开题报告---撰写者 刘尧涛

    《兴安苑客房管理信息系统的设计与实现》这篇毕业设计开题报告主要探讨了在信息化时代背景下,如何利用计算机技术提升宾馆客房管理的效率和水平。报告由华北科技学院计算机网络技术专业的学生刘尧涛撰写,旨在设计并...

    Java面向对象编程实战详解(图书管理系统示例源码+文档)

    6. **异常处理**:在图书管理系统中,可能会遇到各种异常情况,如图书已借出或用户权限不足。Java的异常处理机制(try-catch-finally)可以帮助我们优雅地处理这些问题。 现在,让我们看看提供的文件列表: - **...

    PlayerPerks:玩家特权插件

    这款插件基于Java编程语言开发,是Java游戏开发领域的一个重要实践,下面就让我们一起深入探讨PlayerPerks的核心功能与实现原理。 首先,PlayerPerks的基石在于其权限系统。这个系统允许管理员灵活地为不同等级或...

    db2 sql手册1

    - **应用程序处理、并发与恢复**:探讨如何处理多用户环境下的并发问题,以及如何设计恢复策略以保障数据的完整性和可用性。 #### 三、数据库接口 - **DB2 Call Level Interface (CLI)**:介绍CLI的基础概念,包括...

    Linux 和Unix 安全编程HOWTO.pdf

    - **特权最小化**:介绍如何最小化程序所需的特权,以降低潜在的安全风险。 - **安全地配置并使用安全的缺省值**:推荐使用安全的缺省配置来减少配置错误的风险。 - **安全地失败**:确保程序能够在遇到错误时以安全...

    北京航空航天大学《嵌入式》期末考试复习资料.pdf

    - 用户模式通常用于普通的应用程序执行,而特权模式则为操作系统核心、中断处理程序、系统初始化等提供必要的权限。 - 异常模式,例如FIQ和IRQ模式,支持处理器响应外部硬件中断请求,执行相应的中断服务程序。 -...

    魔兽争霸-领取收费道具漏洞

    这些脚本语言主要是JASS(Java Script for Warcraft),是一种专门为魔兽争霸设计的脚本语言。漏洞往往出现在脚本逻辑处理不当的情况下。 #### 漏洞细节 根据提供的代码片段,我们可以发现这段脚本主要涉及以下几...

    小程序开发-【脐橙】会员 1.83.0 安装更新一体包.zip

    在实际开发中,会员系统通常涉及到用户身份验证、权限控制、积分计算、会员等级划分等模块,需要使用到数据库设计、后端服务开发(如使用Node.js、Python或Java等语言)和前端界面展示。 版本号“1.83.0”表示这是...

    餐饮系统数据库设计展示及课程要求.pptx

    在本文中,我们将深入探讨一个基于Java、JSP开发,利用MyEclipse作为开发工具,Mysql作为后台数据库的餐饮系统数据库设计。 首先,系统主要涉及两个主要的角色:会员与游客,以及系统管理员与连锁店管理员。会员和...

    REALFIGHT_VIP.zip

    在软件开发中,VIP系统通常涉及到用户权限管理、付费服务、会员特权等功能,这些都是Java项目中常见的业务场景。 首先,打开压缩包,我们会发现一个名为"REALFIGHT_VIP"的文件夹,这很可能是项目的主要源代码目录。...

    PCSHARE+VIP+2005源代码

    这个标题暗示了我们可能会深入探讨一个早期的、专为VIP用户提供服务的共享平台的编程实现,时间点大约在2005年。在那个时候,互联网技术正处于快速发展阶段,这样的源代码可以为我们提供一个了解当时软件开发实践和...

    爱看影院E4A源码 影视app源码 可注册登陆带后台 批量生成卡密在线授权_源码.zip

    同时,源码中的在线授权机制表明,用户在购买卡密后可以在线激活,享受会员特权,这涉及到服务器端与客户端的交互逻辑,包括卡密验证、权限赋予等环节。 总的来说,“爱看影院E4A源码”不仅为我们提供了E4A编程的...

    虚拟机器与VxD程式设计

    与用户模式驱动不同,VxDs具有更高的权限,可以处理中断、内存管理和I/O操作,但这也意味着VxD编程需要更高的安全性和稳定性要求,因为错误的VxD可能导致系统崩溃。 VxD程序设计涉及到深入理解Windows内核结构和...

    SpringBoot集成Spring Security实现角色继承【完整源码+数据库】

    例如,我们可以定义一个"管理员"角色,它包含"用户"角色的所有权限,并可能有额外的特权。要实现角色继承,我们需要在数据库中维护这种关系,并在`UserDetails`实现中处理。 3. **数据库设计**: 通常,我们会创建...

    对386进行编程

    此外,四个特权级和完善的权限检查机制确保了资源的隔离和安全性,并允许在保护模式下执行8086程序。 在设计思路部分,作者指出为了实现4GB的寻址空间,需要32位地址线。分段机制则是通过在物理内存中创建逻辑段,...

Global site tag (gtag.js) - Google Analytics