鉴权+算法/加密+HTTPS

  • 核心概念(鉴权方式,加密/解密,HTTPS)
  • JWT工作原理
  • Node.js集成JWT
    在这里插入图片描述
    在这里插入图片描述

鉴权方式:

  • JWT
    优点:易扩展,支持移动设备,跨应用调用,安全,承载信息丰富
    缺点:刷新与过期处理,Payload(有效载荷)不易过大,中间人攻击
  • session/cookie
    优点:较易扩展,简单
    缺点: 安全性低,性能低,服务器存储,多服务器同步session困难(需要借助redis等服务),跨平台困难。
  • oAuth 2.0 (第三方登陆,如微信,github扫描二维码登陆)
    优点:开放,安全,简单,权限指定
    缺点:需要增加授权服务器,增加网络请求

什么是JWT

JWT的全称是JSON Web Token,一个JWT由三部分构成:Header(头部),Payload(载荷),Signature(签名)。

  • Header
    主要规定token使用的加密方式以及token的类型。
    {
    	"alg":"HS256",
    	"typ":"JWT"
    }
    
  • Payload
    主要是token中包含的一些用户信息,如:用户名,过期时间等
    {
    	"sub":"2021-01-01",
    	"name":"zyy",
    	"admin":true
    }
    
  • Signature
    是header的base64的值+payload的base64的值+secret生成的字符串
    然后对这个进行规定的加密,最终获得签名
    HMACSHA256( base64UrlEncode(header) + "."+ base64UrlEncode(payload), secret )

JWT特点

  • 防CSRF(主要是伪造请求,带上Cookie)
  • 适合移动应用(主要指的是app,因为cookie需要存放在浏览器上)
  • 无状态,编码数据

jwt在线验证:https://jwt.io/

在这里插入图片描述

算法/加密

算法:
算法中的指令描述的是一个计算,当其运行时能从一个初始状态和初始输入(可能为空)开始,经过一系列有限而清晰定义的状态最终产生输出并停止于一个终态。(类似于function)
加密:
数据加密的基本过程,就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”。通过这样的途径,来达到保护数据不被非法人窃取,阅读的目的。
在这里插入图片描述

HTTPS

安全传输协议HTTPS
HTTPS(HyperText Transfer Protocol Secure)超文本传输安全协议,常称为HTTP over TLS, HTTP over SSL 或HTTP Secure。是一种通过计算机网络进行安全通信的传输协议。

API安全设计

  • 通信信道加密:使用HTTPS
  • 通信数据加密:密文+加密关键数据
  • 通信安全策略:授权中间层,尝试次数,过期策略。。。

猜你喜欢

转载自blog.csdn.net/weixin_40693643/article/details/113810681