EMZETT.
Увійти

Open redirect: небезпечні перенаправлення

Коротко: Open redirect виникає, коли сайт перенаправляє користувачів на адресу, взяту з параметра запиту, не перевіряючи її. Зловмисники використовують це, щоб спрямовувати жертв через довірений сайт на шахрайські.

Докладніше: Приклад: https://shop.example/login?next=https://evil.example. Після входу сторінка сліпо перенаправляє на next. Посилання починається зі справжнього домену й виглядає надійно.

Подробиці

  • Небезпека: Фішинг виглядає правдоподібніше. Крім того, можна атакувати процеси входу (адреси повернення OAuth), де коди чи токени потрапляють на цільову адресу.
  • Захист 1: Дозволяти лише відносні шляхи (/account), а не повні адреси. Остерігайтеся //evil.example та /\evil.example, які браузери трактують як чужі адреси.
  • Захист 2: Білий список допустимих цілей. Розберіть адресу й порівняйте хост зі списком, а не «починається з».
  • Захист 3: Передавати замість адреси ідентифікатор (?next=account), який сервер сам перекладає в шлях.
  • Сторінка попередження: Якщо зовнішні цілі доводиться допускати, спершу показуйте проміжну сторінку «Ви залишаєте цей сайт».
  • Перевірка: Пробуйте параметри на кшталт next, url, redirect, return_to у тестах із чужими адресами.

Див. також: фішинг, OAuth