Код 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
- Сначала строгий разбор, потом проверка диапазонов по первым двум октетам.
- 172.16.0.0/12 это второй октет от 16 до 31.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.