Что такое SSRF

Ответ

SSRF (Server-Side Request Forgery) — уязвимость, когда злоумышленник заставляет сервер выполнять произвольные HTTP-запросы к внутренним или внешним ресурсам. Часто используется для обхода firewall, сканирования внутренней сети или доступа к метаданным облачных сервисов (например, AWS IMDS).

Пример уязвимого кода на Node.js:

app.get('/fetch', (req, res) => {
  const url = req.query.url;
  fetch(url) // опасный запрос без валидации URL
    .then(response => response.text())
    .then(data => res.send(data));
});

Меры защиты:

  • Валидация и санитизация URL
  • Использование белых списков доменов
  • Отключение обработки перенаправлений
  • Блокировка приватных IP-адресов (RFC 1918)