← Назад к проектам
IP согласия, который подделывался
Вместе с согласием на обработку персональных данных фиксируется IP кандидата, и по IP же работает ограничитель частоты запросов. Когда приложение выставили наружу через туннель, включённое доверие к заголовку прокси пережило смену окружения — и любой клиент мог прислать произвольный X-Forwarded-For, подменив записанный IP согласия и заодно размазав ограничитель.
Нашёл это сам при проверке, а не в отчёте исполнителя. Закрыл: заголовку доверяем только при явно заданном числе прокси-хопов, окружение процесса берётся из файла конфигурации, а на старте приложение пишет в лог, с какими настройками поднялось — чтобы такое расхождение было видно сразу.
Проверка: подделанный заголовок без явной настройки в поле IP согласия больше не попадает.
Фактура
- До этого IP брался из
ctx.ip— то есть без разбора цепочки прокси вообще. - Заодно в ограничителе появилось вытеснение протухших окон, а GET публичной страницы попал под лимит наравне с записью.
- Формулировка риска из документации проекта: если число хопов не задать, IP каждого кандидата становится адресом самого туннеля, а ограничитель схлопывается в один общий ключ на всю компанию.