Код Junior SSRF, файлы и редиректы обновлено

Проверка адреса редиректа после входа

Условие

Напишите isSafeRedirect(next), которая разрешает редирект только на локальный путь сайта.

Разрешено, если строка начинается с /, второй символ (если есть) не / и не \, а в строке нет обратных слэшей и управляющих символов (коды 0x00-0x1F и 0x7F) и пробелов. Всё остальное, включая пустую строку и абсолютные URL, запрещено.

Примеры

isSafeRedirect("/dashboard") // true
isSafeRedirect("/settings?tab=2") // true
isSafeRedirect("/") // true

Как подойти

Подсказки: 2
  1. Проверьте первый и второй символ.
  2. Отдельным регулярным выражением запретите \, пробельные и управляющие символы.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.