Skip to content

Commit 93ede10

Browse files
committed
Dylan Fixing things - new!
1 parent f4bd576 commit 93ede10

File tree

4 files changed

+158
-48
lines changed

4 files changed

+158
-48
lines changed

app.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ var cons = require('consolidate');
2626
const hbs = require('hbs')
2727

2828
var app = express();
29+
app.use(csurf());
2930
var routes = require('./routes');
3031
var routesUsers = require('./routes/users.js')
3132

package-lock.json

Lines changed: 123 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"test": "snyk test"
1616
},
1717
"dependencies": {
18-
"adm-zip": "0.4.7",
18+
"adm-zip": "0.5.2",
1919
"body-parser": "1.9.0",
2020
"cfenv": "^1.0.4",
2121
"consolidate": "0.14.5",
@@ -46,7 +46,8 @@
4646
"stream-buffers": "^3.0.1",
4747
"tap": "^11.1.3",
4848
"typeorm": "^0.2.24",
49-
"validator": "^13.5.2"
49+
"validator": "^13.5.2",
50+
"stimulus_reflex": "3.4.1"
5051
},
5152
"devDependencies": {
5253
"browserify": "^13.1.1",

routes/index.js

Lines changed: 31 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ exports.index = function (req, res, next) {
3636

3737
// Vulnerable code:
3838

39-
39+
/*
4040
exports.loginHandler = function (req, res, next) {
4141
if (validator.isEmail(req.body.username)) {
4242
User.find({ username: req.body.username, password: req.body.password }, function (err, users) {
@@ -69,9 +69,10 @@ if (validator.isEmail(req.body.username)) {
6969
} else {
7070
return res.status(401).send()
7171
};
72+
*/
7273

7374
// Fixed code: validator.escape() is used to sanitize the input parameters (username and password) before using them in the database query.
74-
/*
75+
7576
exports.loginHandler = function (req, res, next) {
7677
// Validate if the username is in email format
7778
if (validator.isEmail(req.body.username)) {
@@ -99,7 +100,7 @@ exports.loginHandler = function (req, res, next) {
99100
return res.status(401).send("Unauthorized");
100101
}
101102
};
102-
*/
103+
103104

104105
function adminLoginSuccess(redirectPage, session, username, res) {
105106
session.loggedIn = 1
@@ -238,48 +239,40 @@ exports.create = function (req, res, next) {
238239
};
239240

240241
// Insert new vulnerable code:
241-
/*
242-
exports.destroy = function (req, res, next) {
243-
Todo.findById(req.params.id, function (err, todo) {
244-
245-
try {
246-
todo.remove(function (err, todo) {
247-
if (err) return next(err);
248-
res.redirect('/');
249-
});
250-
} catch (e) {
251-
}
252-
});
253-
};
254242

255-
exports.edit = function (req, res, next) {
256-
Todo.
257-
find({}).
258-
sort('-updated_at').
259-
exec(function (err, todos) {
260-
if (err) return next(err);
261-
262-
res.render('edit', {
263-
title: 'TODO',
264-
todos: todos,
265-
current: req.params.id
266-
});
243+
exports.loginHandler = function (req, res, next) {
244+
if (validator.isEmail(req.body.username)) {
245+
User.find({ username: req.body.username, password: req.body.password }, function (err, users) {
246+
if (users.length > 0) {
247+
const redirectPage = req.body.redirectPage
248+
const session = req.session
249+
const username = req.body.username
250+
return adminLoginSuccess(redirectPage, session, username, res)
251+
} else {
252+
return res.status(401).send()
253+
}
267254
});
255+
} else {
256+
return res.status(401).send()
257+
}
268258
};
269259

270-
exports.update = function (req, res, next) {
271-
Todo.findById(req.params.id, function (err, todo) {
272-
273-
todo.content = req.body.content;
274-
todo.updated_at = Date.now();
275-
todo.save(function (err, todo, count) {
276-
if (err) return next(err);
277260

278-
res.redirect('/');
279-
});
261+
if (validator.isEmail(req.body.username)) {
262+
User.find({ username: req.body.username, password: req.body.password }, function (err, users) {
263+
if (users.length > 0) {
264+
const redirectPage = req.body.redirectPage
265+
const session = req.session
266+
const username = req.body.username
267+
return adminLoginSuccess(redirectPage, session, username, res)
268+
} else {
269+
return res.status(401).send()
270+
}
280271
});
272+
} else {
273+
return res.status(401).send()
281274
};
282-
*/
275+
283276

284277
// ** express turns the cookie key to lowercase **
285278
exports.current_user = function (req, res, next) {

0 commit comments

Comments
 (0)