Предотвращение небезопасных перенаправлений - PullRequest
0 голосов
/ 01 ноября 2019

Я знаю, что:Перенаправления, которые не проверяют пользовательский ввод, могут позволить злоумышленникам запускать фишинг-мошенничество, красть учетные данные пользователя и выполнять другие вредоносные действия.

, например:

res.redirect(req.query.url);

, но это перенаправление UNSAFE тоже?

res.redirect(req.header('Referer') || '/');

РЕДАКТИРОВАТЬ

Мой веб-сайт является многостраничным, поэтому, когда я хочу показать пользователю сообщения об ошибках, я отправляю флеш-сообщение иперенаправить его на последнюю страницу:

back(req , res) { 
  req.flash('formData' , req.body);
  return res.redirect(req.header('Referer') || '/'); 
}

Так что, если заголовок ('Referer') небезопасен, что за путь SAFE ?

1 Ответ

0 голосов
/ 01 ноября 2019

tl; dr YES!

Заголовок реферера так же небезопасен, как и строка запроса. Нет никакой разницы, потому что оба исходят от пользователя, поэтому ими можно манипулировать. Это говорит о том, что вы должны проверить хост-часть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...