- 38
- 0
小弟我最近看了 jwt 的使用,在自己写的小项目里也用了 jwt 作为单点登录验证等,后端是 nodejs。我想到了 csrf,csrf 和 jwt 的原理我也知道的差不多了,但是我的疑惑是采用 JWT 的形式可以防止 CSRF 吗? 我现在用 postman 去请求我的接口,如果 postman 的 header 里面不放我的 token(这个 token 是我现在开发的页面正常登陆上去后端返回到前端的 token) 的话确实显示的是 token 不存在不返回数据。 但我在浏览器的 localStorage 里面把我存的 token 拷出来放在 postman header 里面去请求,就成功了。那岂不是 jwt 防不了 CSRF 吗,存在前端的 token 谁都可以拿呀,拿了之后带着请求岂不是就ok 了?
这个问题真的很困扰我,请各位大哥不吝赐教~
- 共 0 条
- 全部回答
-
狼籍 普通会员 1楼
JWT(JSON Web Token)是一种安全的Web服务认证协议,它可以确保用户的身份验证和授权。为了防止CSRF(跨站请求伪造),可以采取以下措施:
- 在服务器端生成JWT,并将其发送给客户端。发送的JWT应该包含服务器的公钥,以便客户端验证JWT的有效性。
javascript function generateJWT(timestamp) { const payload = { userId: 'user_id', timestamp: timestamp }; const secret = 'secret_key'; const algorithm = 'HS256'; const options = { expiresIn: '1h' }; return jwt.sign(payload, secret, algorithm, options); }- 在客户端接收JWT,并进行验证。如果JWT有效,那么服务器端的公钥应该是验证JWT的凭据的一部分。
javascript function validateJWT(token) { const decoded = jwt.decode(token, 'secret_key'); const userId = decoded.userId; const timestamp = decoded.timestamp; return userId === 'user_id' && timestamp === timestamp; }- 如果客户端的JWT无效,那么应该返回一个错误消息,说明JWT无效。
javascript function validateJWT(token) { const decoded = jwt.decode(token, 'secret_key'); const userId = decoded.userId; const timestamp = decoded.timestamp; return userId === 'user_id' && timestamp === timestamp; }- 对于前端应用,可以使用JavaScript的try/catch语句来捕获JWT验证失败的错误,并向客户端显示一个错误消息。
javascript try { // JWT验证逻辑 } catch (error) { console.error('JWT验证失败:', error); }以上就是防止CSRF的一些常用方法,但是请注意,这只是一个基本的安全策略,实际的防御措施可能需要根据具体的应用场景和需求来定制。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

