今天继续来看一段代码,如图:

这是一个使用 jwt 登录认证的功能,从代码中是否可以看出问题,如果存在漏洞,那么如何利用,并且如何修复。
这里有个知识点,关于 jwt 认证的,JWT 全称为 JSON Web Token, 将 json 对象作为载体来传输信息。通常用于身份认证和信息交换。JWT 可以使用密钥(HMAC 算法)或使用 RSA 或 ECDSA 的公钥/私钥对自身进行签名。
一个完整的 JWT 认证 Token 包含三个部分,分别是 header 部分,如图:

还有一个是 payload 部分,如图:

最后一个是签名部分,Signature 需要使用编码后的 header 和 payload 以及我们提供的一个密钥,然后使用 header 中指定的签名算法通常是RS256(RSA非对称加密和私钥签名)和HS256(HMAC SHA256对称加密)算法进行签名。签名的作用是保证 JWT 没有被篡改过。
好啦,接下来就看大家的了,分析代码中存在的问题,欢迎留言讨论!