minor changes not stroeeing anti csrf token in sesssion but in a variable
This commit is contained in:
parent
daa4b79765
commit
5170772d1c
@ -236,13 +236,13 @@ async (req, res) => {
|
|||||||
req.session.sessionToken = sessionToken;
|
req.session.sessionToken = sessionToken;
|
||||||
|
|
||||||
// Generate and store anti-CSRF token in the session
|
// Generate and store anti-CSRF token in the session
|
||||||
req.session.csrfToken = crypto.randomBytes(32).toString('hex');
|
csrfTokensession = crypto.randomBytes(32).toString('hex');
|
||||||
|
|
||||||
// Set anti-CSRF token in res.locals
|
// Set anti-CSRF token in res.locals
|
||||||
res.locals.csrfToken = req.session.csrfToken;
|
|
||||||
|
|
||||||
// Log anti-CSRF token
|
// Log anti-CSRF token
|
||||||
console.log(`Generated Anti-CSRF Token: ${req.session.csrfToken}`);
|
console.log(`Generated Anti-CSRF Token: ${csrfTokensession}`);
|
||||||
// Set CSRF token as a cookie
|
// Set CSRF token as a cookie
|
||||||
|
|
||||||
// Implement secure session handling:
|
// Implement secure session handling:
|
||||||
@ -270,12 +270,7 @@ async (req, res) => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
function setCSRFToken(req, res, next) {
|
|
||||||
res.locals.csrfToken = req.session.csrfToken;
|
|
||||||
next();
|
|
||||||
}
|
|
||||||
|
|
||||||
app.use(setCSRFToken);
|
|
||||||
|
|
||||||
app.get("/logout", (req, res) => {
|
app.get("/logout", (req, res) => {
|
||||||
try {
|
try {
|
||||||
@ -323,7 +318,7 @@ app.get("/inusers", isAuthenticated, (req, res) => {
|
|||||||
}
|
}
|
||||||
const currentUsername = req.session.username;
|
const currentUsername = req.session.username;
|
||||||
// Render the inusers page with JSON data
|
// Render the inusers page with JSON data
|
||||||
res.render("inusers", { allUsers ,csrfToken: req.session.csrfToken, currentUsername:currentUsername });
|
res.render("inusers", { allUsers ,csrfToken: csrfTokensession, currentUsername:currentUsername });
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
function isStrongPassword(password) {
|
function isStrongPassword(password) {
|
||||||
@ -401,7 +396,7 @@ app.post(
|
|||||||
// Validate the anti-CSRF token
|
// Validate the anti-CSRF token
|
||||||
const submittedCSRFToken = req.body.csrf_token;
|
const submittedCSRFToken = req.body.csrf_token;
|
||||||
|
|
||||||
if (!req.session.csrfToken || submittedCSRFToken !== req.session.csrfToken) {
|
if (!csrfTokensession || submittedCSRFToken !== csrfTokensession) {
|
||||||
return res.status(403).json({ error: 'CSRF token mismatch' });
|
return res.status(403).json({ error: 'CSRF token mismatch' });
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -721,7 +716,7 @@ app.post("/reset-password", async (req, res) => {
|
|||||||
const creatorUsername = req.session.username;
|
const creatorUsername = req.session.username;
|
||||||
const submittedCSRFToken = req.body.csrf_token;
|
const submittedCSRFToken = req.body.csrf_token;
|
||||||
|
|
||||||
if (!req.session.csrfToken || submittedCSRFToken !== req.session.csrfToken) {
|
if (!csrfTokensession|| submittedCSRFToken !== csrfTokensession) {
|
||||||
return res.status(403).json({ error: 'CSRF token mismatch' });
|
return res.status(403).json({ error: 'CSRF token mismatch' });
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -758,8 +753,8 @@ app.post("/reset-password", async (req, res) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Update user's password based on the username
|
// Update user's password based on the username
|
||||||
const updateQuery = "UPDATE users SET password = ?, salt = ? WHERE username = ?";
|
const updateQuery = "UPDATE users SET password = ? WHERE username = ?";
|
||||||
connection.query(updateQuery, [hashedPassword, salt, sanitizedUsername], async (updateErr, updateResults) => {
|
connection.query(updateQuery, [hashedPassword, sanitizedUsername], async (updateErr, updateResults) => {
|
||||||
if (updateErr) {
|
if (updateErr) {
|
||||||
console.error("Error updating password:", updateErr);
|
console.error("Error updating password:", updateErr);
|
||||||
return res.status(500).json({ error: "Error updating password" });
|
return res.status(500).json({ error: "Error updating password" });
|
||||||
@ -857,9 +852,10 @@ app.get('/api/users', (req, res) => {
|
|||||||
try {
|
try {
|
||||||
// Extract CSRF token from the request body
|
// Extract CSRF token from the request body
|
||||||
const { csrfToken } = req.body;
|
const { csrfToken } = req.body;
|
||||||
|
console.log(csrfToken);
|
||||||
|
console.log(csrfTokensession);
|
||||||
// Compare CSRF token with the one stored in the session
|
// Compare CSRF token with the one stored in the session
|
||||||
if (csrfToken !== req.session.csrfToken) {
|
if (csrfToken !== csrfTokensession) {
|
||||||
return res.status(403).json({ success: false, error: 'CSRF token mismatch' });
|
return res.status(403).json({ success: false, error: 'CSRF token mismatch' });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@
|
|||||||
<h1>Eco Saver</h1>
|
<h1>Eco Saver</h1>
|
||||||
<a href="/inusers">In-House Users</a>
|
<a href="/inusers">In-House Users</a>
|
||||||
<a href="#">Users</a>
|
<a href="#">Users</a>
|
||||||
<a href="#">Data Analysis</a>
|
<a href="#">Sensors</a>
|
||||||
<a href="/logout">Logout</a>
|
<a href="/logout">Logout</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user