Код Junior SSRF, файлы и редиректы обновлено
Проверка адреса редиректа после входа
Условие
Напишите isSafeRedirect(next), которая разрешает редирект только на локальный путь сайта.
Разрешено, если строка начинается с /, второй символ (если есть) не / и не \, а в строке нет обратных слэшей и управляющих символов (коды 0x00-0x1F и 0x7F) и пробелов. Всё остальное, включая пустую строку и абсолютные URL, запрещено.
Примеры
isSafeRedirect("/dashboard") // true
isSafeRedirect("/settings?tab=2") // true
isSafeRedirect("/") // true
Как подойти
Подсказки: 2
- Проверьте первый и второй символ.
- Отдельным регулярным выражением запретите
\, пробельные и управляющие символы.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.