Skip to content

Commit ce95676

Browse files
committed
add express.csrf as an CSRF protecting middleware
1 parent 27a2cd3 commit ce95676

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

javascript/ql/src/Security/CWE-352/MissingCsrfMiddleware.ql

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,8 @@ DataFlow::CallNode csrfMiddlewareCreation() {
9494
exists(result.getOptionArgument(0, "csrf"))
9595
or
9696
callee = DataFlow::moduleMember("lusca", "csrf")
97+
or
98+
callee = DataFlow::moduleMember("express", "csrf")
9799
)
98100
}
99101

javascript/ql/test/query-tests/Security/CWE-352/MissingCsrfMiddlewareGood2.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,3 +73,20 @@ var passport = require('passport');
7373
let newEmail = req.cookies["newEmail"];
7474
})
7575
});
76+
77+
(function () {
78+
79+
var app = express()
80+
81+
app.use(cookieParser())
82+
app.use(passport.authorize({ session: true }))
83+
84+
// Assume token is being set somewhere
85+
app.use(express.csrf({ value: function (request) {
86+
return request.headers['x-xsrf-token'];
87+
}}));
88+
89+
app.post('/changeEmail', function (req, res) {
90+
let newEmail = req.cookies["newEmail"];
91+
})
92+
});

0 commit comments

Comments
 (0)