第68篇 jwt的简单介绍
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