asp.net core安全事项(下)
越權(quán)
越權(quán)是非常嚴(yán)重的安全漏洞,通常狀態(tài)是開發(fā)人員對(duì)請(qǐng)求的限制邏輯不嚴(yán)格導(dǎo)致的。
如果系統(tǒng)中有角色的概念,越權(quán)可能出現(xiàn)不同角色間的越權(quán)和同角色間的越權(quán)。
相同角色:
A用戶,B用戶是相同的角色。
A用戶和B用戶都可以調(diào)用 /photo/{id}。
這個(gè)url,如果在后端不判斷這個(gè)phtoto的id屬于那個(gè)用戶的,就很容易造成越權(quán),這里只要A用戶登錄驗(yàn)證通過后,就可以用這個(gè)api,換id來請(qǐng)求到B用戶的照片信息,這種情況下通常在后端要把id和用戶id都當(dāng)成查詢條件,去庫(kù)中查詢,這樣就能有效防止越權(quán)。
其實(shí)就是加了一層過濾,是誰(shuí)的數(shù)據(jù)。如果數(shù)據(jù)歸屬權(quán)有層級(jí),交叉,那將是更復(fù)雜的控制,不過這些都是業(yè)務(wù)邏輯決定的。
有時(shí),我們很容易忽略一些數(shù)據(jù)所有權(quán),比較上傳的文件,圖片,屬于那個(gè)用戶,可能在表里對(duì)文件,圖片和用戶作了綁定,但當(dāng)前端訪問或下載這個(gè)文件,圖片時(shí),并沒有去對(duì)文件,圖片所有權(quán)作個(gè)判斷,從而造成越權(quán)風(fēng)險(xiǎn)。
不同角色:
A角色,B角色有不同的功能
很多時(shí)候,不同的角色有不同的功能,這些功能是通過菜單在UI上顯示,當(dāng)不同的角登錄后,只能看見屬于自己的功能,如果不在服務(wù)端對(duì)每個(gè)api和角色加以映射判斷(api層的權(quán)限設(shè)定很重要),就很容易造成越權(quán),雖然A角色在UI上看不到B角色的功能菜單,一但A記下B角角功能的url,也會(huì)很順利的訪問到B角色的功能。
還有一個(gè)就是權(quán)限控制模塊的處理,如果多個(gè)角色都有不同的權(quán)限控制權(quán)限,一定要設(shè)置好權(quán)限的范圍控制,權(quán)限低的不能添加或修改成權(quán)限高的用戶,負(fù)責(zé)后果很嚴(yán)重,老板很生氣。
總結(jié)
以上是生活随笔為你收集整理的asp.net core安全事项(下)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Asp.Net Core之Identit
- 下一篇: 当 .NET 5 遇上OpenTelem