zoukankan      html  css  js  c++  java
  • JWT 拓展

    JWT适用场景

    https://www.jianshu.com/p/af8360b83a9f

    适用于一次性操作的认证,颁布一个很短过期时间的JWT给浏览器。

    无状态的JWT无法实现精确的在线人数统计。

    建议使用https协议,因开销问题取决于公司。

    利用cookie存储token需要注意

    1、cookie有大小限制(通常为4k);

    2、和浏览器有cookie数量限制(例如Firefox每个域名cookie限制为50个);

    3、若用localstorage存储token,需防止xss攻击;

    刷新jwt token

    https://www.jianshu.com/p/78e15a1ac7f2

    jwt不能记录客户端信息,所以一旦token失效,客户端必须重新获取token

    在token中加入refreshtoken,设置exp时间为t,设置refreshtoken为2t

    如果客户端携带失效token请求服务器

    服务器验证token失效,验证refreshtoken是否失效,若未失效则创建新的token,并放回给客户端

    客户端接收请求内容,并将新返回的token覆盖原始token,下次访问携带新token

    jwt token盗用

    https://segmentfault.com/q/1010000010003323/a-1020000010004454

    因为jwt属于无状态服务,所有信息都存储于客户端,对于token盗用问题可使用一下方案

    1、使用HttpOnly提升cookie安全性,可防止XSS攻击、使用https协议、

    将JWT通过HTTP header发送给服务端(而不是通过cookie自动发送)可以有效防护CSRF

    2、使用有状态的session,同时可以解决服务器可控问题

    扩充

    cookie使用HttpOnly

    在Cookie中包含httponly属性时为true,Cookie 不允许通过JS来读写。可防止XSS攻击。

    为什么在请求头写token并且使用https就安全了

    http协议传输的数据都是未加密的,为明文传输。

    ​http 是超文本传输协议,信息是明文传输,https 则是具有安全性的 ssl 加密传输协议。

    http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443。

    http 的连接很简单,是无状态的;HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 http 协议安全。

    https就是http的安全版本,但是https需要ca证书,一般需要收费

    参考

    https://www.cnblogs.com/zhangsanfeng/p/9125732.html

  • 相关阅读:
    https://和http://区别
    选择排序法
    冒泡排序法-----一点也不简单喔
    hadoop启动后没有datanode怎么办
    洛谷 1379 八数码难题
    Floyd 算法详解
    datagridview 点击列标题排序
    Python【每日一问】05
    Python【每日一问】04
    Python【每日一问】03
  • 原文地址:https://www.cnblogs.com/GoCircle/p/10057455.html
Copyright © 2011-2022 走看看