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

Проверка IPv4 для защиты от SSRF

Условие

Напишите isBlockedIPv4(ip), которая возвращает true, если к адресу нельзя ходить из сервиса скачивания.

  • Адрес принимается только в виде четырёх десятичных чисел 0-255 через точку без ведущих нулей (10.0.0.1). Любой другой вид (127.1, 0x7f.0.0.1, 2130706433, 010.0.0.1, пустая строка) считается некорректным и блокируется.
  • Блокируются диапазоны: 0.0.0.0/8, 10.0.0.0/8, 100.64.0.0/10, 127.0.0.0/8, 169.254.0.0/16, 172.16.0.0/12, 192.168.0.0/16, 224.0.0.0/4 и 240.0.0.0/4 (включая 255.255.255.255).
  • Остальные адреса разрешены (false).

Примеры

isBlockedIPv4("8.8.8.8") // false
isBlockedIPv4("127.0.0.1") // true
isBlockedIPv4("169.254.169.254") // true

Как подойти

Подсказки: 2
  1. Сначала строгий разбор, потом проверка диапазонов по первым двум октетам.
  2. 172.16.0.0/12 это второй октет от 16 до 31.

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

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