成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

應(yīng)用層安全架構(gòu)設(shè)計(jì)-訪問控制

安全 應(yīng)用安全
權(quán)限控制,或者說訪問控制,廣泛應(yīng)用于各個(gè)系統(tǒng)中。抽象地說,是某個(gè)主體(subject)對(duì)某個(gè)客體(object)需要實(shí)施某種操作(operation),而系統(tǒng)對(duì)這種操作的限制就是權(quán)限控制。

[[374958]]

本文轉(zhuǎn)載自微信公眾號(hào)「JAVA日知錄」,作者單一色調(diào) 。轉(zhuǎn)載本文請(qǐng)聯(lián)系JAVA日知錄公眾號(hào)。   

權(quán)限控制,或者說訪問控制,廣泛應(yīng)用于各個(gè)系統(tǒng)中。抽象地說,是某個(gè)主體(subject)對(duì)某個(gè)客體(object)需要實(shí)施某種操作(operation),而系統(tǒng)對(duì)這種操作的限制就是權(quán)限控制。

在網(wǎng)絡(luò)中,為了保護(hù)網(wǎng)絡(luò)資源的安全,一般是通過路由設(shè)備或者防火墻建立基于IP和端口的訪問控制。

在操作系統(tǒng)中,對(duì)文件的訪問也要訪問控制。比如在Linux系統(tǒng)中,一個(gè)文件可以執(zhí)行的操作分為“讀”、“寫”、“執(zhí)行”三種,這三種操作同時(shí)對(duì)應(yīng)著三種主體:文件擁有者、文件擁有者所在的用戶組、其他用戶,主體、客體、操作這個(gè)三者之間的對(duì)應(yīng)關(guān)系,構(gòu)成了訪問控制列表。

在Web應(yīng)用中,根據(jù)訪問客體的不同,常見的訪問控制可以通過解決以下幾個(gè)目標(biāo)問題來實(shí)現(xiàn):

  • 他是誰?
  • 他只能訪問給他授予了權(quán)限的接口!
  • 他不能查看別人的數(shù)據(jù)!

下面我們以前后端分離的項(xiàng)目為例,解釋如何解決這幾個(gè)目標(biāo)問題:

他是誰?

在前后端分離項(xiàng)目中,前端用戶登錄后后端服務(wù)會(huì)給其頒發(fā)一個(gè)token,比如我們所熟知的JWT(JSON Web Token),而后每次前端請(qǐng)求后端接口都會(huì)帶上這個(gè)token。由于JWT上會(huì)帶有用戶信息,此時(shí)我們要做的就是校驗(yàn)這個(gè)token對(duì)應(yīng)的用戶是否為系統(tǒng)合法用戶。

他只能訪問給他授予了權(quán)限的接口!

光知道他是系統(tǒng)的合法用戶還是不夠,web應(yīng)用還得保證當(dāng)前用戶只能訪問他擁有權(quán)限的接口。

比如有個(gè)薪資查詢的接口,業(yè)務(wù)上只允許部門領(lǐng)導(dǎo)角色訪問。如果系統(tǒng)不做控制,張三知道了薪資查詢接口,就拿著自己的token去調(diào)用此接口然后就能知道所有員工的薪資了,這種問題我們稱之為"越權(quán)訪問"。

處理這個(gè)問題現(xiàn)在應(yīng)用廣泛的一種方法就是“基于角色的訪問控制(RBAC:Role-Based Access Control)”,也稱“垂直權(quán)限管理”。

RBAC事先會(huì)在系統(tǒng)中定義出不同的角色,不同的角色擁有不同的權(quán)限,一個(gè)角色實(shí)際上就是一個(gè)權(quán)限的集合。而系統(tǒng)的所有用戶都會(huì)被分配到不同的角色中,一個(gè)用戶可能擁有多個(gè)角色。

當(dāng)用戶帶著token請(qǐng)求后端服務(wù)時(shí),我們還得通過token查詢出當(dāng)前用戶所屬的角色,然后根據(jù)角色查詢出用戶擁有的所有權(quán)限。權(quán)限框架 Spring Security 和 Shiro都很好的支持RBAC控制。

他不能查看別人的數(shù)據(jù)!

張三和李四都是部門領(lǐng)導(dǎo),他們都可以查詢員工薪資的權(quán)限。但是他們都只被允許查看自己部門員工的薪資。張三知道了接口調(diào)用規(guī)則,就可以通過修改調(diào)用參數(shù)獲取李四部門員工的薪資了,這種情況當(dāng)然也是不被允許的。

在RBAC模型下,系統(tǒng)只會(huì)驗(yàn)證用戶A是否屬于角色RoleX,而不會(huì)判斷用戶A是否能訪問只屬于用戶B的數(shù)據(jù)DataB,因此發(fā)生了越權(quán)訪問。這種問題我們稱之為“水平權(quán)限管理問題”。

現(xiàn)在數(shù)據(jù)級(jí)權(quán)限管理并沒有很通用的解決方案,一般是具體問題具體解決。

簡(jiǎn)單的做法是給接口請(qǐng)求加上秘鑰,通過接口參數(shù)+當(dāng)前系統(tǒng)登錄人一起進(jìn)行加密發(fā)送給后端服務(wù),后端接受到請(qǐng)求后對(duì)加密內(nèi)容進(jìn)行解密,根據(jù)約定的規(guī)則解析出用戶信息并與登錄用戶進(jìn)行匹配,匹配上正常訪問,匹配不上則拒絕訪問。

 

責(zé)任編輯:武曉燕 來源: JAVA日知錄
相關(guān)推薦

2024-11-27 13:01:22

應(yīng)用層領(lǐng)域?qū)?/a>對(duì)接層

2012-06-07 10:53:08

架構(gòu)設(shè)計(jì)數(shù)據(jù)訪問層設(shè)計(jì)原則

2022-08-22 11:45:59

架構(gòu)技術(shù)

2022-06-01 11:14:22

云原生安全架構(gòu)設(shè)計(jì)

2011-11-21 09:55:31

2010-06-09 10:25:18

SET應(yīng)用層協(xié)議

2022-03-04 23:55:33

安全架構(gòu)結(jié)構(gòu)

2016-11-29 15:22:47

協(xié)議應(yīng)用層安全層

2012-01-13 10:13:57

軟件定義網(wǎng)絡(luò)SDNOpenFlow

2010-06-28 15:52:17

2015-10-16 10:10:18

應(yīng)用層通信協(xié)議

2020-08-17 08:18:51

Java

2012-08-17 10:55:21

IBMdW

2015-01-04 16:59:37

CISSP安全架構(gòu)系統(tǒng)保護(hù)

2009-07-06 20:55:48

Linux全訪問控制模型方案設(shè)計(jì)

2011-08-16 14:42:16

2013-02-19 09:47:57

F5 NetworksLineRateSDN

2012-05-30 09:43:45

業(yè)務(wù)邏輯層

2012-06-07 10:22:48

架構(gòu)設(shè)計(jì)邏輯層物理層

2012-06-07 10:35:40

架構(gòu)設(shè)計(jì)業(yè)務(wù)邏輯Java
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 中日韩毛片 | 亚洲国产小视频 | 亚洲欧美日韩电影 | 一区二区蜜桃 | 免费色网址 | 国产一级片久久久 | 亚洲成人网在线观看 | 欧美国产一区二区 | 一区二区三区精品在线 | 国产精品久久久久国产a级 欧美日韩国产免费 | 亚洲看片网站 | 精品1区 | 一区二区在线 | 一级欧美一级日韩片免费观看 | 天天摸天天看 | 91视视频在线观看入口直接观看 | 国产亚洲精品精品国产亚洲综合 | 在线中文字幕亚洲 | 九九热最新地址 | 毛片久久久 | 91亚洲国产亚洲国产 | 欧美一级黄色片免费观看 | 99久久婷婷国产综合精品电影 | 天天干狠狠干 | 国产成人免费视频网站视频社区 | 日韩欧美在 | 日韩精品 电影一区 亚洲 | 精品国产一区探花在线观看 | 中文字幕国产日韩 | 久久精彩| 亚洲精品视频免费 | 美女久久| 日韩成人在线视频 | 久久久久久久国产精品影院 | 国产一区欧美一区 | jizz18国产 | 久久久看| av中文字幕网站 | 国产精品视频免费看 | 看av电影| 国产综合精品一区二区三区 |