jwt token 可以防住 csrf 攻击吗???

2019-08-19 15:32:44 +08:00
 xiaojinmaolove

如题,大佬们能否指导一下呢

4522 次点击
所在节点    程序员
11 条回复
Carseason
2019-08-19 15:34:46 +08:00
可以自己做个中间件来验证
arrow8899
2019-08-19 15:42:36 +08:00
可以的,一般都是验证 Referer 和 验证 token,但是注意 token 不要放 cookie 里面。
elioti
2019-08-19 18:45:27 +08:00
前端把 jwt token 放到请求头, 后端从请求头获取 token.
default7
2019-08-19 18:46:40 +08:00
gRPC 替代
wuwukai007
2019-08-19 18:54:22 +08:00
前端一般把 token 存在哪呢?
DavidNineRoc
2019-08-19 19:35:39 +08:00
你先百度一下
csrf 是什么,
jwt 又是用来做什么,
你就知道能不能防止了. 答案是不能.
wangxiaoaer
2019-08-19 19:42:33 +08:00
@DavidNineRoc 如果 token 不是通过 cookie 带过去,而且存在某个地方,通过请求头传递到后台的话,为什么不能防?
kingwrcy
2019-08-19 20:03:21 +08:00
对,通过 header 传就行,不要 cookie,但是有些下载请求还是得走 cookie.
also24
2019-08-19 20:08:15 +08:00
@wangxiaoaer #7
因为楼主的提问存在二义性:
A:是否可以通过使用 jwt token,来达到防范 csrf 的目的?(即 jwt token 是 “保护手段”)
B:使用 jwt token 的过程中,是否可以通过某种方式防范 csrf 攻击?(即 jwt token 是 “保护对象”)

A 的答案:否。也就是 6 楼的意思。
B 的答案:是。也就是你的意思。
nnnToTnnn
2019-08-20 09:19:11 +08:00
Q:JWT 是什么?
A:JSON Web Token , 生成的方式如下

```
const token = base64urlEncoding(header) + '.' + base64urlEncoding(payload) + '.' + base64urlEncoding(signature)
```

主要作用是为做无状态的 session,避免服务器频繁查询 session


Q: 那么 JWT 安全吗?
A: 很显然,JWT 不是为了安全设计的


--------------------------------------------------------------------



而 csrf 是伪造跨站请求,不等于盗取 token
xxxy
2019-08-20 10:11:30 +08:00
只有 9 楼是对的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/593181

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX