Код Middle Безопасность веб-приложения спрашивают часто обновлено
Безопасный редирект после входа
Условие
Напишите safe_next(url, host): верните url, если это безопасный адрес на текущем сайте, иначе "/". Безопасно: относительный путь, начинающийся с одного / (но не // и не /\), или абсолютный https:// URL с хостом, точно равным host. Всё остальное (другие хосты, http://, javascript:, пустая строка, пути без ведущего /, управляющие символы и пробелы в начале) небезопасно.
Примеры
safe_next("/orders/5", "shop.ru") // "/orders/5"
safe_next("https://shop.ru/cart", "shop.ru") // "https://shop.ru/cart"
safe_next("https://evil.ru/", "shop.ru") // "/"
Как подойти
Подсказки: 2
- Разберите URL через
urllib.parse.urlsplit. - Проверьте
//и/\в начале.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.