继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【备战春招】第5天 API接口安全相关知识

liuying525
关注TA
已关注
手记 24
粉丝 4
获赞 4

课程章节:第6章 场景四:通用Nodejs后台打通全栈第一脉 6-1 API接口安全相关知识(加密&算法&HTTPS)

课程讲师: Brian

课程内容:

登录鉴权
查看有没有这个权限,这个工作是出现在服务器端
图片描述
图片描述
鉴权
Oauth鉴权,扫二维登录。中间人,传输密文信息被别人截取了,然后转发。seesion/cookie session服务器端 cookie浏览器。老式。现在JWT,移动端和跨端,head部分带一个token,最大特点无状态,不需要在服务器端去存储session,也不用去考虑多服务器时候session的同步啦。
算法/加密 把明文的信息按某种算法进行加密变得不可读。对称加密,非对称加密
HTTPS 对通信的信道进行一个加密

常见的鉴权方式

  • Session/Cookie
    优点:较易扩展 简单
    缺点:安全性低,性能低,服务端存储,多服务器同步session困难,跨平台困难
  • JWT
    优点:易扩展,支持移动设备,跨应用调用,安全,承载信息丰富(json)
    缺点:刷新与过期处理(传输的时间过去了),Payload不易过大(对网络的资源占用多),中间人攻击(在token没有过期的时候,发送到服务器的请求都是有权限的)
  • Oauth
    优点:开放(任何的服务器商都可以去实现,任何的软件商都可以去使用,微信登录,QQ登录),安全,简单,权限指定。
    缺点:需要增加授权服务器,增加网络请求(有回调的存在,耗费更多的时间)。

什么是JWT
JWT的全称是JSON Web Token(Json格式中的网络传输的token),一个JWT又三部分构成:Header,Payload,Signature。头部 载荷 签名

Header {‘alg’:‘HS256’,‘typ;‘JWT’} token使用的加密的方式以及token的类型
Payload 是JSON中用户的一些信息 比如用户名过期时间 {‘sub’:‘2022-01-01’,‘name’:‘Brian’,‘admin’:true}
Signature HMACSHA256(base64UrlEncode(header)+’’
+’.’+base64UrlEncode(payload),secret)是由 header base64的值加上 Payload Base64的值再加secret生成的一个字符串

JWT特点

  • 防CSRF(主要是伪造请求,带上Cookie)
  • 适合移动应用(这里指的是app,因为cookie是要存放在浏览器上的,app对其支持不好)
  • 无状态,编码数据(不需要像session一样存储会话状态,传输数据进行编码保证安全性)

典型的JWT样子
图片描述
最后是签名

网址:https:jwt.io 在线产生,解密jot
图片描述
主要是去比对Signature签名是否一致

JWT工作原理
图片描述
确实是在过期时间内携带,但安全是相对的。通过中间信道进行加密,也更安全。

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

中间的FN加密过程分为对称性加密和非对称型加密,对称型的加密和解密是一套算法,非对称的需要公私钥。对称的双方拿到的是同一个密钥。

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

课程总结:

本章节通过对鉴权,加密/算法,HTTPS三个方面讲述了API接口安全的相关知识,对于前端小白来说比较通俗易懂,有了个大致的概念,着重介绍了现在主流的鉴权方式JWT,它因为更适合移动端和多端的鉴权而称为现在最主流的鉴权方式。后面还会简单的去直接写个JWT鉴权,前端多了解下这方面的内容对平时的日常开发和升级确实是有好处。
图片描述

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP