前言
當透過 Checkmarx 集合為 OWASP TOP 10 - 2021 掃 ASP.NET MVC 時,
在一些有 Authorize 的 Action 上,如果接受一些 int, string 的參數直接當作DB的Filter,
Checkmarx 就會出 Missing Object Level Authorization 的中風險
解法
Checkmarx 認為這個 Action 除了登入者之外,
還需要特別的角色人員才可以執行它,
所以除了 [Authorize]
外是不行的,
需要改成 [Authorize(Roles = "某個角色")]
,
或是在Method中判斷是否為某個 User ,例如,
1 | if (!User.IsInRole("某個角色")) |
設定使用者及角色程式碼為,
1 | var userPrincipal = |