【问题标题】:KeystoneJS CSRF on own pagesKeystoneJS CSRF 在自己的页面上
【发布时间】:2016-12-28 01:01:07
【问题描述】:

我正在寻找一种简单的方法来设置 CSRF 令牌并在每个 POST/PUT/... 请求中检查它。

AdminUI 中已有一种机制。这可以在“普通”网页上使用吗?

我知道keystone.security.csrf.middleware.initkeystone.security.csrf.middleware.validate 函数。但是在哪里打电话最好呢?

提前非常感谢! 丹尼尔

编辑: 我尝试过使用

keystone.pre('routes', keystone.security.csrf.middleware.init); keystone.pre('routes', keystone.security.csrf.middleware.validate);

在我的路线文件中。令牌设置在我的 cookie 中。当我请求服务器时,也会传输 cookie。 但是验证方法告诉我:“不匹配令牌”。也许我有一个概念上的误解。我想,这将开箱即用。我错过了什么?

编辑2: 我会将令牌添加到我的表单中。我错过了这一步...

【问题讨论】:

    标签: node.js csrf keystonejs


    【解决方案1】:

    您可以将其称为通用中间件,只需在您的 routes/index.js 文件中定义即可:

    keystone.pre('routes', keystone.security.csrf.middleware.init);
    

    【讨论】:

    • 这是一个不错的 keystonejs 方式。 Keystone pre 和 set 方法是否有任何文档?我想知道 validate 方法的最佳位置在哪里。
    • 如果你能看看我编辑过的问题就好了。也许你对我有暗示?如果没有,没问题。您基本上为我指明了正确的方向,我很快就会接受您的回答。
    • 当你发出 POST 请求时,如果你试图登录,你需要传递一个电子邮件、密码和 _csrf 参数
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-11
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 2023-03-19
    • 2014-09-15
    相关资源
    最近更新 更多