我正在尝试使用 express.js 框架在使用 node.js 构建的应用程序中实现 CSRF 保护。该应用程序大量使用了对服务器的 Ajax 发布调用。我了解连接框架提供 CSRF 中间件,但我不确定如何在客户端 Ajax 发布请求的范围内实现它。
在 stackoverflow 中发布的其他问题中对此有一些零碎的内容,但我还没有找到一个相当完整的示例来说明如何从客户端和服务器端实现它。
有没有人有一个他们愿意分享如何实现这一点的工作示例?我见过的大多数示例都假设您在服务器端呈现表单,然后将其(连同嵌入式 csrf_token 表单字段)发送到客户端。在我的应用程序中,所有内容都通过 Backbone.js 在客户端(包括模板)呈现。服务器所做的只是提供 JSON 格式的值,这些值被客户端 Backbone.js 中的各种模型使用。据我了解,我需要先通过 ajax 检索 csrf_token,然后才能使用它。但是,我担心从安全角度来看这可能是个问题。这是一个有效的担忧吗?