繁体   English   中英

如何保护 Koa.js 应用程序免受 CSRF 攻击?

[英]How to secure Koa.js application against CSRF attacks?

我知道Cross-Site Request Forgery (CSRF)是一种攻击,它迫使用户执行一些他们已经登录的 web 应用程序的无意操作。

我想阻止 CSRF 调用基于 Koa.js 的 API 和表单提交。 这是一个基于 JWT 的应用程序。

通常框架具有防止或保护 CSRF 的插件。 但是,当您使用Koa.js时,如何防止此类 CSRF 攻击? Koa 中是否有任何middlewares可以做到这一点?

自己写一个中间件其实很简单(有时间我这里举个例子)。 基本上,流程如下:

生成一个令牌并将其保存在 session ( https://www.npmjs.com/package/koa-session ) 中,并将该令牌作为隐藏字段放在表单中。 提交表单时,检查隐藏字段中发布的令牌是否与 session 中保存的令牌相同。 不过,请务必在每个请求中重新生成一个新令牌。

需要注意的重要一点是,session 令牌必须在服务器端保存或在客户端加密,否则将毫无意义。 在这种情况下,使用签名的 JWT 令牌的 Simlpy 将不起作用。 如果要使用 JWT 令牌,则必须实现 redis 或其他东西来保存(JWT-token:csrf-token)的键值对。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM