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