Выбор ответа Senior Сессии и безопасность обновлено
SSRF при загрузке по URL
Вопрос
Сервис скачивает аватар по URL, который указал пользователь. Какая атака возможна и как защититься?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: SSRF: запросы во внутреннюю сеть, нужно запрещать приватные IP. Server-Side Request Forgery заставляет сервер обратиться туда, куда у пользователя доступа нет: метаданные облака с ключами, админки во внутренней сети, Redis без пароля через gopher://.
Варианты ответа
- XSS: нужно экранировать URL аватара при выводе в HTML
- CSRF: нужен токен в форме, где пользователь вводит URL
- SSRF: запросы во внутреннюю сеть, нужно запрещать приватные IPправильный ответ
- SQL-инъекция: URL нужно передавать в подготовленный запрос
Разбор
Server-Side Request Forgery заставляет сервер обратиться туда, куда у пользователя доступа нет: метаданные облака с ключами, админки во внутренней сети, Redis без пароля через gopher://. Защита: белый список схем, разрешение DNS и проверка, что IP не приватный и не loopback (с повторной проверкой после редиректов и против DNS rebinding), таймауты и ограничение размера ответа, а лучше отдельный сервис-загрузчик без доступа во внутреннюю сеть.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.