小型电商网站开发,网页设计的制作流程,株洲营销网站建设,做新零售这些注册网站和找货源6JWT 介绍 JWT#xff08;JSON Web Token#xff09;是一个开放标准#xff08;RFC 7519#xff09;#xff0c;它定义了一种简洁的、自包含的方法用于通信双方之间以 JSON 对象的形式安全地传输信息。这种信息可以被验证和信任#xff0c;因为它是数字签名的。JWT通常用于…JWT 介绍 JWTJSON Web Token是一个开放标准RFC 7519它定义了一种简洁的、自包含的方法用于通信双方之间以 JSON 对象的形式安全地传输信息。这种信息可以被验证和信任因为它是数字签名的。JWT通常用于互联网应用程序中用于身份验证和授权。 JWT 和 传统 Token 的区别
JWT传统 Token存储位置JWT通常存储在客户端传统的Token如Cookies和Session Tokens通常在服务器端存储状态传输方式JWT作为HTTP请求的一部分传输可以直接在请求的Header中传统Token通常通过Cookie在浏览器和服务器之间传输状态管理JWT是自包含的不依赖于服务器的会话状态减轻服务器负担。传统Token通常与服务器的会话状态绑定服务器需要存储用户的会话信息这可能导致更高的服务器负载和状态管理复杂性。安全性和隐私JWT的所有信息都是加密的并且可以设置权限只有拥有正确密钥的用户才能解码信息。但是如果密钥被泄露那么所有的JWT都可能受到影响。不包含敏感信息因此不加密跨域使用由于 JWT 不依靠服务器状态可以在不同域之间请求和传递用户信息因此适合跨域请求传统Token在跨域请求中可能需要服务器配置CORS跨源资源共享策略
JWT 组成部分 JWT由三部分组成
头部Header这部分通常是一个JSON对象描述了JWT的签名算法和其它元数据。有效载荷Payload这部分也通常是一个JSON对象包含了发行方信息、用户信息、过期时间等声明。签名Signature这是header和payload的数字签名使用header中指定的签名算法生成用于验证JWT的完整性和真实性。
由于JWT是自包含的所以它不需要在服务器上存储状态这减少了攻击面并允许用户在没有状态的系统中进行认证。同时由于JWT是在客户端和服务器之间传输的所以它也易于跨域使用。 以下是一段 JWT的内容我们需要找到令牌中的用户名 令牌详细部分如下
eyJhbGciOiJIUzI1NiJ9.ew0KICAiYXV0aG9yaXRpZXMiIDogWyAiUk9MRV9BRE1JTiIsICJST0xFX1VTRVIiIF0sDQogICJjbGllbnRfaWQiIDogIm15LWNsaWVudC13aXRoLXNlY3JldCIsDQogICJleHAiIDogMTYwNzA5OTYwOCwNCiAgImp0aSIgOiAiOWJjOTJhNDQtMGIxYS00YzVlLWJlNzAtZGE1MjA3NWI5YTg0IiwNCiAgInNjb3BlIiA6IFsgInJlYWQiLCAid3JpdGUiIF0sDQogICJ1c2VyX25hbWUiIDogInVzZXIiDQp9.9lYaULTuoIDJ86-zKDSntJQyHPpJ2mZAbnWRfel99iI
其中
header 部分为eyJhbGciOiJIUzI1NiJ9
payload部分为ew0KICAiYXV0aG9yaXRpZXMiIDogWyAiUk9MRV9BRE1JTiIsICJST0xFX1VTRVIiIF0sDQogICJjbGllbnRfaWQiIDogIm15LWNsaWVudC13aXRoLXNlY3JldCIsDQogICJleHAiIDogMTYwNzA5OTYwOCwNCiAgImp0aSIgOiAiOWJjOTJhNDQtMGIxYS00YzVlLWJlNzAtZGE1MjA3NWI5YTg0IiwNCiAgInNjb3BlIiA6IFsgInJlYWQiLCAid3JpdGUiIF0sDQogICJ1c2VyX25hbWUiIDogInVzZXIiDQp9
signature部分为9lYaULTuoIDJ86-zKDSntJQyHPpJ2mZAbnWRfel99iI
通过放入解码平台我们可以看到解密后的文件找出解密后的用户名从而通关靶场 用户在成功对服务器进行身份验证后使用用户名和密码登录 返回。服务器创建一个新令牌并将此令牌返回给客户端。当客户端连续 调用服务器在“Authorization”标头中附加新令牌。服务器读取令牌并首先验证签名验证成功后服务器使用 令牌中用于标识用户的信息。