python jwt是一个用于生成和验证JSON Web令牌的模块。3.3.4之前的版本会受到欺骗绕过身份验证的影响,从而导致身份欺骗、会话劫持或身份验证绕过。获得JWT的攻击者可以在不知道密钥的情况下任意伪造其内容。根据应用程序的不同,这可能使攻击者能够欺骗其他用户的身份、劫持他们的会话或绕过身份验证。用户应升级到版本3.3.4。没有已知的解决方法。
python jwt<3.3.4
JWT和cookie、session
header
在Python来看就是一个字典格式,元数据如下:
{'alg':'HS256', 'typ':'JWT'}
# alg代表要使用的 算法 HMAC-SHA256 简写HS256
# typ表明该token的类别 此处必须为 大写的 JWT
# 该部分数据需要转换成json串并用base64转码
payload
在cookie和session中会将用户id或名字写入到其中,在token中会将其写在payload中。
格式为字典-此部分分为公有声明和私有声明
公有声明: JWT提供了内置关键字用于描述常见的问题
此部分均为可选项,用户根据自己需求 按需添加key,常见公共声明如下:
{'exp':xxx, # EXpiration Time 此token的过期时间的时间戳 time.time()+300s 给一个未来过期时间
'iss':xxx, # (issuer) Claim 指明此token的签发者 是那台机器签发的token (当前项目没用)
'aud':xxx, # (Audi