如何解决如何保护 Koa.js 应用程序免受 CSRF 攻击?
我知道 Cross-Site Request Forgery (CSRF)
是一种攻击,它迫使用户在他们已经登录的某个 Web 应用程序中执行无意的操作。
我想阻止对基于 Koa.js 的 API 和表单提交进行调用的 CSRF。这是一个基于 JWT 的应用程序。
通常框架具有防止或保护 CSRF 的插件。但是,在使用 Koa.js
时如何防止此类 CSRF 攻击? Koa 中是否有任何 middlewares
这样做?
解决方法
自己写一个中间件其实很简单(有时间我会举个例子)。基本上流程如下:
生成一个令牌并将其保存在会话 (https://www.npmjs.com/package/koa-session) 中,并将该令牌作为表单中的隐藏字段放置。提交表单时,检查隐藏字段中发布的令牌是否与会话中保存的令牌相同。不过,请务必在每个请求中重新生成一个新令牌。
需要注意的重要一点是会话令牌必须在服务器端保存或在客户端加密,否则将毫无意义。在这种情况下,使用签名的 JWT 令牌的 Simlpy 将不起作用。如果要使用 JWT 令牌,则必须实现 redis 或其他东西来保存 (JWT-token:csrf-token) 的键值对。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。