Javascript 在sails.js中,某些URL可以免于CSRF吗?

Javascript 在sails.js中,某些URL可以免于CSRF吗?,javascript,node.js,sails.js,csrf,stripe-payments,Javascript,Node.js,Sails.js,Csrf,Stripe Payments,我正在将Stripe设置为与我的sails.js服务器一起使用,为了使用Stripe的webhook,我需要为我提供给Stripe的URL禁用CSRF 是否可以在sails.js中免除某些URL的CSRF POST要求?我能找到的唯一CSRF配置是全局打开它,查看CSRF hook()的源代码,看起来如果我尝试提供一个自定义对象,它就会被全局设置替换 谢谢所以在阅读了问题中链接的csrf钩子之后,我设法解决了这个问题 从v0.11.0开始: 如果您试图在csrf.js配置文件中为一个对象提供设置

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

是否可以在sails.js中免除某些URL的CSRF POST要求?我能找到的唯一CSRF配置是全局打开它,查看CSRF hook()的源代码,看起来如果我尝试提供一个自定义对象,它就会被全局设置替换


谢谢

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

v0.11.0开始

如果您试图在csrf.js配置文件中为一个对象提供设置,那么钩子只会用所有设置的“default on”覆盖它们。csrf对象最终看起来是这样的

{
  grantTokenViaAjax: true,
  protectionEnabled: true,
  origin: '-',
  routesDisabled: '-'
}
为了向对象添加路由豁免,您需要在设置之后进行,所以我在config/bootstrap.js中进行了此操作。因此,要添加路由“”:

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

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

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

config/csrf.js
中,在激活csrf保护的行后面有以下注释块:

/****************************************************************************
*                                                                           *
* 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"
}

可能相关(expressjs):也相关:@timh我已经看过了,您可以通过策略在sails.js中提供类似的中间件,但是现有的csrf策略将在自定义策略之前运行。
module.exports.csrf = {
  "routesDisabled": "/webhooks/testhook,/webhooks/anotherhook"
}