mirror of
https://github.com/PretendoNetwork/website.git
synced 2026-07-27 13:22:07 -05:00
fix: possible unsafe redirect
This commit is contained in:
parent
041dc82a94
commit
748ec633f7
|
|
@ -219,7 +219,8 @@ router.get('/login', async (request, response) => {
|
|||
});
|
||||
|
||||
router.post('/login', async (request, response) => {
|
||||
const { username, password, redirect } = request.body;
|
||||
const { username, password } = request.body;
|
||||
let { redirect } = request.body;
|
||||
|
||||
let apiResponse = await util.apiPostGetRequest('/v1/login', {}, {
|
||||
username,
|
||||
|
|
@ -254,6 +255,10 @@ router.post('/login', async (request, response) => {
|
|||
|
||||
response.cookie('ph', encryptedBody.toString('hex'), { domain: '.pretendo.network' });
|
||||
|
||||
if (!redirect.startsWith('/')) {
|
||||
redirect = null;
|
||||
}
|
||||
|
||||
response.redirect(redirect || '/account');
|
||||
});
|
||||
|
||||
|
|
@ -273,14 +278,19 @@ router.get('/register', async (request, response) => {
|
|||
response.clearCookie('username', { domain: '.pretendo.network' });
|
||||
response.clearCookie('mii_name', { domain: '.pretendo.network' });
|
||||
|
||||
const redirect = request.query.redirect;
|
||||
let redirect = request.query.redirect;
|
||||
if (!redirect.startsWith('/')) {
|
||||
redirect = null;
|
||||
}
|
||||
|
||||
renderData.redirect = redirect;
|
||||
|
||||
response.render('account/register', renderData);
|
||||
});
|
||||
|
||||
router.post('/register', async (request, response) => {
|
||||
const { email, username, mii_name, password, password_confirm, 'h-captcha-response': hCaptchaResponse, redirect } = request.body;
|
||||
const { email, username, mii_name, password, password_confirm, 'h-captcha-response': hCaptchaResponse } = request.body;
|
||||
let { redirect } = request.body;
|
||||
|
||||
response.cookie('email', email, { domain: '.pretendo.network' });
|
||||
response.cookie('username', username, { domain: '.pretendo.network' });
|
||||
|
|
@ -306,6 +316,10 @@ router.post('/register', async (request, response) => {
|
|||
response.clearCookie('username', { domain: '.pretendo.network' });
|
||||
response.clearCookie('mii_name', { domain: '.pretendo.network' });
|
||||
|
||||
if (!redirect.startsWith('/')) {
|
||||
redirect = null;
|
||||
}
|
||||
|
||||
response.redirect(redirect || '/account');
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user