【问题标题】:Can certain URLs be exempt from CSRF in sails.js?Sails.js 中的某些 URL 可以免于 CSRF 吗?
【发布时间】:2015-05-05 01:24:00
【问题描述】:

我正在设置 Stripe 以使用我的sails.js 服务器,为了使用 Stripe 的 webhook,我需要为我提供给 Stripe 的 URL 禁用 CSRF。

是否可以在sails.js 中使某些URL 免于CSRF POST 要求?我可以为 CSRF 找到的唯一配置是全局打开它,并查看 csrf 钩子 (https://github.com/balderdashy/sails/blob/master/lib/hooks/csrf/index.js) 的源代码,看起来如果我尝试提供自定义对象,它就会被全局设置替换无论如何。

谢谢

【问题讨论】:

标签: javascript node.js sails.js csrf stripe-payments


【解决方案1】:

所以在阅读了问题中链接的 csrf 钩子之后,我设法解决了这个问题。

v0.11.0 开始:

如果您尝试在 csrf.js 配置文件中为对象提供设置,则挂钩会简单地将所有设置覆盖为“默认开启”。 csrf 对象最终看起来像这样

{
  grantTokenViaAjax: true,
  protectionEnabled: true,
  origin: '-',
  routesDisabled: '-'
}

为了给对象添加路由豁免,你需要在设置好之后做,所以我在 config/bootstrap.js 中做了这个。所以要添加路由“http://yourhost.com/webhooks/testhook/”:

// In bootstrap.js
sails.config.csrf.routesDisabled = "/webhooks/testhook";

如果要添加多个钩子,请将它们添加到同一个字符串中,以逗号分隔:

// In bootstrap.js
sails.config.csrf.routesDisabled = "/webhooks/testhook,/webhooks/anotherhook";

【讨论】:

    【解决方案2】:

    所以 Murcho 的解决方案是有效的,但实际上,sails v0.11 有一个配置文件:

    config/csrf.js 中,在您激活 csrf 保护的那一行之后是这个 cmets 块:

    /****************************************************************************
    *                                                                           *
    * You may also specify more fine-grained settings for CSRF, including the   *
    * domains which are allowed to request the CSRF token via AJAX. These       *
    * settings override the general CORS settings in your config/cors.js file.  *
    *                                                                           *
    ****************************************************************************/
    
    // module.exports.csrf = {
    //    grantTokenViaAjax: true,
    //    origin: ''
    // }
    

    你只需要在那里添加一个配置对象来扩展默认值:

    module.exports.csrf = {
      "routesDisabled": "/webhooks/testhook,/webhooks/anotherhook"
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-20
      • 1970-01-01
      • 1970-01-01
      • 2019-12-13
      • 1970-01-01
      • 2012-04-21
      • 2014-06-10
      相关资源
      最近更新 更多