Код 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
  1. Разберите URL через urllib.parse.urlsplit.
  2. Проверьте // и /\ в начале.

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

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

Термины по теме