【发布时间】:2021-01-18 08:37:22
【问题描述】:
我知道Cross-Site Request Forgery (CSRF) 是一种攻击,它会迫使用户在他们已经登录的某些 Web 应用程序中执行无意的操作。
我想阻止 CSRF 调用基于 Koa.js 的 API 和表单提交。这是一个基于 JWT 的应用程序。
通常框架具有防止或保护 CSRF 的插件。但是,当您使用Koa.js 时,如何防止此类 CSRF 攻击呢? Koa 中是否有 middlewares 这样做?
【问题讨论】:
-
也许这个项目能帮上忙:github.com/koajs/csrf
-
@jackmis 谢谢。我已经浏览了上面链接中提到的细节,但是我现在有几个问题。 1. 是否需要设置会话密钥? 2. 是否需要设置会话支持? 3、对于第一次API调用(如登录),用户在接下来的调用中如何获取CSRF令牌与服务器共享?因此,一个例子可能会有所帮助
-
另外,github 链接中给出的示例仅讨论了基于表单的请求,但如何实现 API?
-
我正在尝试在基于 JWT 的应用程序中实现这一点
-
我不熟悉那个项目和 node.js。众所周知,为了防止 CSRF,我们必须生成一个攻击者无法预测的参数(令牌),然后使用该参数提交请求,并通过验证参数来验证请求。对于您的问题,我猜:1)不(我猜 koa-csrf 有自己的方式来管理它); 2) 是(以便 koa-csrf 可以验证令牌); 3)我在 Koajs 项目中发现了这个:github.com/koajs/examples/blob/master/csrf/app.js
标签: javascript csrf middleware koa koa2