1.API保護
1.1 為什麼要保護API
- 防洩漏
- 防攻擊
1.防偽裝攻擊(案例:在公共網路環境中,第三方 有意或惡意 的呼叫我們的介面)
2.防篡改攻擊(案例:在公共網路環境中,請求頭/查詢字串/內容 在傳輸過程被修改)
3.防重放攻擊(案例:在公共網路環境中,請求被截獲,稍後被重放或多次重放) - 收益化
1.2 設計原則
- 1.輕量級
- 2.易於開發、測試和部署
- 3.適合於異構系統(跨作業系統、多語言簡易實現)
- 4.所有寫操作介面(增、刪、改 操作)
- 5.非公開的讀介面(如:涉密/敏感/隱私 等)
1.3 加密演算法
- ES
- RSA
- Base64
- MD5
1.4 有哪些保護方式
1.4.1 非登入(自約定資料加密)——(報文sha+金鑰+加密演算法)
- 只作為Header傳遞:Md5
- 整體作為報文傳遞:解密,SHA
1.4.2 登入 Session + cookie
依賴瀏覽器
1.4.3 登入:JWT
一切源於HttpContext,重點是 Claim,移動端和SPA更好
- 自定義鑑權:比較靈活,可以隨意設計
- 官方定義:正規,完整的寫法
2.JWT核心知識點
2.1 什麼是claim?
在 .net core 基礎類庫中是含有Claim的實現類的,它的位置是
System.Security.Claims.Claim