惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
博客园 - Franky
GbyAI
GbyAI
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
爱范儿
爱范儿
IT之家
IT之家
酷 壳 – CoolShell
酷 壳 – CoolShell
aimingoo的专栏
aimingoo的专栏
博客园_首页
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Recent Announcements
Recent Announcements
Scott Helme
Scott Helme
有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
C
CERT Recently Published Vulnerability Notes
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Jina AI
Jina AI
F
Fortinet All Blogs
N
Netflix TechBlog - Medium
L
LangChain Blog
L
LINUX DO - 最新话题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
H
Hacker News: Front Page
MyScale Blog
MyScale Blog
P
Palo Alto Networks Blog
G
Google Developers Blog
Google DeepMind News
Google DeepMind News
AI
AI
T
Troy Hunt's Blog
Microsoft Azure Blog
Microsoft Azure Blog
阮一峰的网络日志
阮一峰的网络日志
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Vercel News
Vercel News
Microsoft Security Blog
Microsoft Security Blog
罗磊的独立博客
S
Secure Thoughts
大猫的无限游戏
大猫的无限游戏
博客园 - 叶小钗
人人都是产品经理
人人都是产品经理
Blog — PlanetScale
Blog — PlanetScale
博客园 - 司徒正美
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
S
Security @ Cisco Blogs
Cloudbric
Cloudbric
E
Exploit-DB.com RSS Feed
Attack and Defense Labs
Attack and Defense Labs

博客园 - zhouyongguo

最省力的多语言解决方案 软件的互联网基因 工作流设计图 手机、未来、饭碗 找到最重要的知识 “智能”的随想 软件也是仿生学 软件交互设计原则 把软件做成艺术品 从人脑到搜索引擎的畅想 关于程序员的技能 面对各不相同的业务功能的表单系统架构 项目型企业业务模型简单分析 关于软件的交互性设计 关于正规化 知识管理系统模型浅见 使用Silverlight 实现工作流流程定义 软件的世界(1):认识现实世界 - zhouyongguo - 博客园 采用ASP.NET 2.0的Callback机制构建轻量级的AJAX架构
权限控制和法官判罪
zhouyongguo · 2010-07-06 · via 博客园 - zhouyongguo

   业务程序的权限控制是一个复杂的问题,从应用层面来说至少要解决三个方面的问题。

   1. 我是谁,确定用户的标识,解决用户的ID的标记、访问和存储问题。

   2。我可以做什么,即用户的功能权限问题。

   3.我可以对什么做什么,也就是数据权限问题。例如项目经理可以查看那些项目,可不可以删除,项目经理的上级可不可以对当前项目操作,部门助理可不可以看本部门的项目等等问题。

第一个和第二个问题相对比较好解决,第三个问题比较麻烦。

数据权限的问题实质是数据可以按照数据的ID、属性、业务过程进行授权。我们这里举一个例子。

文档授权:

       1.文档创建人可以设置是否可以删除、查看等等权限

       2.文档创建人所属部门领导可否删除、查看等等权限

       3.如果文档和项目相关,项目经理和成员可否删除、查看等等权限

       4.文档发布在A类型下,A类型文档的管理员可否删除、查看等等权限

我们发现文档的权限实际和企业的业务过程和文档本身的属性相关,现在有两个解决方案。

方案A:

        1.定义权限业务规则(即定义文档创建人可以设置是否可以删除)。

        2.访问数据的时候实时换算出当前数据的访问控制作用于数据。

方案B:

       1.定义权限业务规则(即定义文档创建人可以设置是否可以删除)。 

       2.当数据产生的时候,根据数据属性和权限业务规则对数据进行授权,授权直接作用在数据资源本身,授权后和业务再无关系。

       3.访问数据的时候直接对控制点验证。

法官判案:

         1.定义刑法 (相当于确定权限的业务规则)。
         2.当犯罪案件发生时候,法官根据法律条文和犯罪事实(抢劫、伤人、贩毒等等)不同量刑。(相当于根据规则发放资源权限密钥)。

         3.罪犯服刑,此时只关心服刑多少年,不再关注犯罪事实。

方案A,和权限相关的数据列表统计非常困难 ,负责的业务控制需要换算,程序不稳定。

方案B,讲权限规则分离出去,数据的权限控制依赖一致的数据控制密钥。