Tag: csrf

例外CSRF检查路由器节点js

我正在使用webook在我的节点js应用程序中调用我的一个路由器。 我不想使用'csurf',这是一个CSRF令牌库,当这个特定的路由器被调用时。 路由器叫做ch ,它不是index路由器 我的CSRF预期的代码是这样的 var csrf = require('csurf'); var csrfProtection = csrf(); var csrfExclusion = ['/check-ch']; var conditionalCSRF = function (req, res, next) { if(csrfExclusion.indexOf(req.path) !== -1){ next(); } else { csrf(req, res, next); next(); } } router.use(conditionalCSRF); router.post('/check-ch',(req, res, next) => { console.log(req.body); console.log('i am here'); }); 通常我searchstackoverflow但所有答案显示,上述方法应该工作,但在我的terminal我最终得到无效的CSRF标记,我不知道为什么。 CSRF令牌也被用在index.js路由器中,通过同样的方法,我先加载它然后直接使用router.use(csrfProtection) ,没有使用conditionalCSRF 。 它看起来像条件​​CSRF甚至没有被调用,当我尝试使用一个webook,所以我不知道是什么阻止它运行。

KeystoneJS CSRF在自己的页面上

我正在寻找一个简单的方法来设置一个CSRF令牌,并检查每个POST / PUT / …请求。 AdminUI中已经有了一个机制。 这可以在“正常”的网页上使用吗? 我知道keystone.security.csrf.middleware.init和keystone.security.csrf.middleware.validate函数。 但是最好的地方叫他们在哪里? 提前谢谢了! 丹尼尔 编辑:我曾尝试使用 keystone.pre('routes', keystone.security.csrf.middleware.init); keystone.pre('routes', keystone.security.csrf.middleware.validate); 在我的路线文件。 令牌在我的cookie中设置。 当我请求服务器时,cookie也被传输。 但validation方法告诉我:“不匹配标记”。 也许我有一个概念误解。 我想,这可以开箱即用。 我错过了什么? 编辑2:我将添加令牌到我的表单。 我错过了这一步…

sails.js启用用于浏览器访问的csrf,并禁用用于本地应用程序访问的csrf

我使用sails.js作为后端,或者更一般地使用nodejs。 我的网站的pipe理页面是通过浏览器访问的,但是对于所有的非pipe理员用户,他们应该通过原生移动应用程序(iOS / Android)访问我的后端资源。 我认为,对于本机应用程序宁静的http请求,没有必要启用csrf保护,但对于pipe理页面浏览器访问,它是。 所以我想知道是否有可能为浏览器访问启用csrf保护并禁用移动本地应用程序访问的csrf保护?

Csurf无效的csrf令牌Express / nodejs

我有这种奇怪的行为,我只是第一次加载我的页面时,得到一个错误,基本上是'EBADCSRFTOKEN'我一直在试图弄清楚为什么只发生在页面加载,如果我刷新,并得到一个新的令牌一切工作正常。 同样的情况发生在我删除csurf的cookie,刷新刷新,我得到一个新的令牌,但第一次总是失败我不知道为什么期待的string和令牌不匹配。 代码片段(我正在使用MEANJS堆栈): app.use(busboy()); app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json({limit: '50mb'})); app.enable('jsonp callback'); var cp = cookieParser; app.use(cp()); var mStore = new mongoStore({ db: db.connection.db, collection: config.sessionCollection }); app.use(session({ secret: config.sessionSecret, store: mStore, cookie: {httpOnly: false}, key:config.cookieKey, })); app.use(csrf()); //setting up a middleware var middlewareFiles = [ 'csrf-rule.server.js', 'secure-routes.server.js' ]; middlewareFiles.forEach(function(routeSecure){ require(path.resolve('./app/middleware/'+routeSecure))(app); }); app.use(function(err, req, res, […]

导致Node.JS + Express故障的CSRF中间件

根据以前的SO问题已经成功地获得了以快递方式工作的CSRF中间件。 它正在生成令牌,但拒绝所有表单提交。 唯一可能的冲突我可以看到,我使用redis作为会话存储与connect-redis和插入到会话中的socket.io,但我已经注释掉了插槽位,它仍然不是很好玩。 这是我打电话给我的中间件的命令可能是棘手的吗? (CoffeeScript的) app.configure -> app.set 'views', __dirname + '/views' app.set 'view engine', 'jade' app.use express.bodyParser() app.use express.methodOverride() app.use express.cookieParser() app.use express.session secret: "itsasecret" store: sessionStore app.use express.csrf() app.dynamicHelpers token: (req, res) -> req.session._csrf app.use app.router app.use express.static(__dirname + '/public') 这是响应发布的数据的路线。 (这不是开发代码,只是我学习节点,我很清楚,如果我把它放在网上这将是一个怪物) app.post '/admin/logintry', (req, res) -> if req.body.username is 'Tim' and req.body.password […]

错误:CSRF令牌缺失,hackathon-starter加上AngularJS

我正在将AngularJS整合到黑客马拉松。 正如我在这里用下面的test.html和test.controller.js所提到的那样完成的 <div> The record: {{record}} </div> <div align="right"> <button class="btn btn-lg btn-primary" ng-click="createRecord()" onclick="window.location.href='/order/shipping'"> <i class=""> Create record</i> </button> </div> test.controller.js (function () { 'use strict'; var injectParams = ['$scope', '$location', '$http']; function TestController($scope, $location, $http) { $scope.record = { interId: 1, sku: '107k', category: 'Useful' }; function createRecord(record) { return $http.post('/order/create', record).then(function (response) […]

在Node.js中渲染json时,CSRF令牌不匹配

我正在使用lusca来处理我的应用程序的csrf攻击。 在我的快速应用程序,当我呈现一个HTML页面,并通过_csrf令牌放置在一个隐藏的input一切都是正确的,因为lusca检查html _csrf令牌,并find匹配。 我的控制器: response.render("root/home", { _csrf: response.locals._csrf }); 我的html页面: <input type="hidden" name="_csrf" value="{{_csrf}}" /> 但是当我想导出一个POST请求的JSON响应,我不能发送我的_csrf令牌,所以lusca无法find匹配(我认为问题在这里),并给我这个错误: 错误:CSRF令牌不匹配 我的控制器: response.json({ status: "success" }); 更新: csrf的秘密 (不是令牌,介意你)正在重新生成或删除初始GET和POST之间的一段时间。 唯一可行的方法是在会话中存储为_csrfSecret的值在请求之间被更改或删除。 确保你的会议正常工作。 从这个来源 但我仍然无法find解决scheme! 更新2: 我们有两个策略来生成csrf令牌… 每个会话和每个请求 。 在我的应用程序令牌生成每个请求。 问题是当我第一次请求新的令牌时会产生秘密。 这意味着新的令牌和秘密相匹配。 但当我保存令牌,并发送一个AJAX请求(在标题或正文); 这ajax请求使旧的秘密过期,并将生成一个新的。 所以我的令牌不符合它。

CSRF禁止在我的registry上,不知道为什么

我已经在我的Express v3应用程序上设置了CSRF,我有这样的: app.use(express.session({ secret: "gdagadgagd", cookie: { httpOnly: true, path : '/', maxAge: 1000*60*60*24*30*12 } })); app.use(express.csrf()); app.use(function(req, res, next) { res.locals.token = req.session._csrf; next(); }) 在我的页面上令牌显示为: <input type="hidden" name="_csrf" value="E3afFADF3913-fadFK31"> 但是当我尝试在我的网页上注册时,我得到这个错误: Error: Forbidden at Object.exports.error (/Users/account/Desktop/nodeapp/node_modules/express/node_modules/connect/lib/utils.js:55:13) at Object.handle (/Users/account/Desktop/nodeapp/node_modules/express/node_modules/connect/lib/middleware/csrf.js:54:41) at next (/Users/account/Desktop/nodeapp/node_modules/express/node_modules/connect/lib/proto.js:190:15) at next (/Users/account/Desktop/nodeapp/node_modules/express/node_modules/connect/lib/middleware/session.js:313:9) at /Users/account/Desktop/nodeapp/node_modules/express/node_modules/connect/lib/middleware/session.js:337:9 at /Users/account/Desktop/nodeapp/node_modules/express/node_modules/connect/lib/middleware/session/memory.js:50:9 at process._tickCallback (node.js:415:13) 我使用Jade作为我的模板引擎,这就是我所拥有的: input(type='hidden', […]

删除API后调用csrf保护

我想从我的Express 3.0应用程序中删除csrf,因为我不需要它。 我使用oauth来validation客户端。 当使用express.csrf()时,是否将中间件列入白名单?

Node.js使用csurf有条件地使用express 4

我尝试在我的快速应用程序的几条路线上使用csurf。 这是方法: var express = require('express'); var session = require('express-session'); var csrf = require('csurf'); // some more stuff var csrfExclusion = ['/myApi','/unsecure']; var app = express(); var conditionalCSRF = function (req, res, next) { if (csrfExclusion.indexOf(req.path) !== -1){ next(); } else{ csrf(); } }); app.use(conditionalCSRF); 甚至尝试过: var conditionalCSRF = function (req, res, next) { if […]