jwt面试

1、jwt和security的区别

  • jwt ( json web token)优点:

​ 无状态,json格式简单,不需要在服务端存储

  • 缺点

​ 一旦创建无法销毁或者修改状态,没有办法做权限 控制

  • security优点:

​ 和spring无缝结合,可以对用户状态坐控制,可以做权限控制

  • 缺点

​ 用起来比较复杂,权限控制需要一连串过滤连,消耗服务器内存空间

2、如何销毁jwt

生成token时,有效期设置短一些

可以和redis结合使用,退出时销毁redis的token。判断redis的token即可

还可以添加黑名单功能,对其进行拦截

3、如果token有效期过短,如何保持会话

token要到期时,在重新生成一份token

4、如何防止cookie被篡改

可以设置cokkie的状态为httponly

可以在请求中添加防盗链

可以把token存放在请求头中或者local storage中,由于无状态的token过长,很容易达到4kb

由于容易被篡改,payload中不要放用户重要信息,如密码

5、如果用户禁用cookie怎么办

普通用户一般不知道cookie,也不会禁用,如何禁用我们对其友好提示,让其开启

6、如何防止token异地登陆

token是没办法做异地的判断的,这时我们可以采取传统的session方式

7、你们怎么做权限控制的

我们有一套权限控制服务,保存用户的角色和路径信息、当用户发起请求的时候,通过网关的的全局pre过滤器拦截所有请求,获取请求信息,解析jwt参数,根据参数获取用户,根据用户明去查询数据库的用户是否存在,以及当前用户有无访问此地址的权限,没有即拦截

8、你们微服务地址对外暴漏了怎么办

首先因为用户访问的时候走的是我们nginx的代理,微服务对外暴漏的可能性很低,即使暴漏了,我们每个微服务也有一套的鉴权校验策略;首先有一张表存每个微服务的id,密钥;服务器启动的时候使用id和密钥去授权中心生成jwt令牌,去访问其他的时候访问携带令牌

9、如何防止token被篡改

jwt使用了header和payload参数来校验是否被篡改,header存放算法类型和类型是jwt方式的参数,payload是存放用户自定义的参数,还有签名结合来确认token是否被篡改

参考:https://blog.csdn.net/MINGJU2020/article/details/103039418

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值