Skip to content

Commit 57b6c76

Browse files
authored
Update index.js
1 parent 01aed92 commit 57b6c76

File tree

1 file changed

+38
-31
lines changed

1 file changed

+38
-31
lines changed

routes/index.js

Lines changed: 38 additions & 31 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,10 +69,9 @@ if (validator.isEmail(req.body.username)) {
6969
} else {
7070
return res.status(401).send()
7171
};
72-
*/
7372

7473
// Fixed code: validator.escape() is used to sanitize the input parameters (username and password) before using them in the database query.
75-
74+
/*
7675
exports.loginHandler = function (req, res, next) {
7776
// Validate if the username is in email format
7877
if (validator.isEmail(req.body.username)) {
@@ -100,7 +99,7 @@ exports.loginHandler = function (req, res, next) {
10099
return res.status(401).send("Unauthorized");
101100
}
102101
};
103-
102+
*/
104103

105104
function adminLoginSuccess(redirectPage, session, username, res) {
106105
session.loggedIn = 1
@@ -239,40 +238,48 @@ exports.create = function (req, res, next) {
239238
};
240239

241240
// Insert new vulnerable code:
241+
/*
242+
exports.destroy = function (req, res, next) {
243+
Todo.findById(req.params.id, function (err, todo) {
242244
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-
}
245+
try {
246+
todo.remove(function (err, todo) {
247+
if (err) return next(err);
248+
res.redirect('/');
249+
});
250+
} catch (e) {
251+
}
252+
});
253+
};
254+
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+
});
254267
});
255-
} else {
256-
return res.status(401).send()
257-
}
258268
};
259269
270+
exports.update = function (req, res, next) {
271+
Todo.findById(req.params.id, function (err, todo) {
260272
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-
}
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);
277+
278+
res.redirect('/');
279+
});
271280
});
272-
} else {
273-
return res.status(401).send()
274281
};
275-
282+
*/
276283

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

0 commit comments

Comments
 (0)