Security 我可以用JWT在服务器和客户端之间创建数据交互吗?JWT使用相同的;秘密;?
我尝试使用JWT创建一个Web应用程序: 如果用户向服务器发送请求,我可以在服务器上运行该过程,并以web令牌的形式将数据发送回浏览器,这就引出了一个问题: 如何在浏览器中验证此服务器响应,并通过使用JWT向服务器发送新请求,该JWT具有可从服务器接受的机密 在服务器上,应该验证来自浏览器请求的JWT 我考虑的是在客户端上创建一个具有相同“机密”的JWT,但这对于攻击者来说是可读的,因为可以读取源代码(开发人员控制台) 有办法吗Security 我可以用JWT在服务器和客户端之间创建数据交互吗?JWT使用相同的;秘密;?,security,web,jwt,json-web-token,Security,Web,Jwt,Json Web Token,我尝试使用JWT创建一个Web应用程序: 如果用户向服务器发送请求,我可以在服务器上运行该过程,并以web令牌的形式将数据发送回浏览器,这就引出了一个问题: 如何在浏览器中验证此服务器响应,并通过使用JWT向服务器发送新请求,该JWT具有可从服务器接受的机密 在服务器上,应该验证来自浏览器请求的JWT 我考虑的是在客户端上创建一个具有相同“机密”的JWT,但这对于攻击者来说是可读的,因为可以读取源代码(开发人员控制台) 有办法吗 //Create request JWT Request 1 --
//Create request JWT
Request 1 --> {head: ...; data:..., secrete: secret}
//Request should be checkted on the server (secrete)
// create a Resonse JWT and send back to the Client
Resonse 1 --> {head: ...; data:..., secrete: secret}
//Client verify the Respons JWT by the secrete
保密私钥。通过网络发送它们是一个危险的解决方案,因为如果它们被盗,会破坏整个系统。您可以使用非对称RSA密钥对而不是对称RSA密钥对。JWT使用私钥签名,并使用公钥进行验证 在通常情况下,当未识别用户时,服务器需要在浏览器中向用户提供凭据,并发出新的JWT令牌。浏览器中的客户端应用程序在后续的身份验证请求中包含JWT令牌。服务器验证令牌签名 您建议浏览器也发布JWt令牌作为身份验证的一种形式。考虑以下事项:
- 您将需要一个非对称密钥对
- 在浏览器中生成密钥,不要通过网络发送私钥
- 确保密钥安全:我建议使用本机webcryptography api,因为与任何其他加密库不同,它允许生成和使用密钥而不暴露内容,即不会被盗
- 将公钥发送到服务器并将其与用户帐户关联