cnodejs / nodeclub

:baby_chick:Nodeclub 是使用 Node.js 和 MongoDB 开发的社区系统
http://cnodejs.org/
MIT License
9.34k stars 3.12k forks source link

csrf的问题 #354

Closed fengmk2 closed 10 years ago

fengmk2 commented 10 years ago

(3).One-Time Tokens(不同的表单包含一个不同的伪随机值)

在实现One-Time Tokens时,需要注意一点:就是“并行会话的兼容”。如果用户在一个站点上同时打开了两个不同的表单,CSRF保护措施不应该影响到他对任何表单的提交。考虑一下如果每次表单被装入时站点生成一个伪随机值来覆盖以前的伪随机值将会发生什么情况:用户只能成功地提交他最后打开的表单,因为所有其他的表单都含有非法的伪随机值。必须小心操作以确保CSRF保护措施不会影响选项卡式的浏览或者利用多个浏览器窗口浏览一个站点。

对上述描述,cnode的防御机制是这种?

alsotang commented 10 years ago

我刚才在 cnode 试了试,好像并不会出现下列情况:

用户只能成功地提交他最后打开的表单,因为所有其他的表单都含有非法的伪随机值

cnode 的 csrf 是用的 express 官方的 csrf 中间件。

fengmk2 commented 10 years ago

那估计是csrf中间件已经修复了。 2014-6-9 下午3:47于 "alsotang" notifications@github.com写道:

我刚才在 cnode 试了试,好像并不会出现下列情况:

用户只能成功地提交他最后打开的表单,因为所有其他的表单都含有非法的伪随机值

cnode 的 csrf 是用的 express 官方的 csrf 中间件。

— Reply to this email directly or view it on GitHub https://github.com/cnodejs/nodeclub/issues/354#issuecomment-45468438.