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у тестах із чужими адресами.