В моем веб-приложении я собираю IP-адрес клиента через заголовок X-Forwarded-For, поскольку использую обратные прокси-серверы.
Однако я знаю, что этот заголовок можно легко подделать, и атака может добавитьк нему.
Также на основании этого (https://support.f5.com/csp/article/K12264), я вижу, что у нас может быть запрос с несколькими заголовками.
Итак, при условии, что мой запрос имеет следующее: -
X-forwareded-For: clientIP, proxy1
X-forwareded-For: proxy2, proxy3
X-forwarded-For: proxy 4
Или даже
X-Forwarded-For: clientIp, proxy1, proxy2, proxy3, proxy4
Могу ли я сконфигурировать его в своем приложении для доверия # прокси, скажем, например, у меня есть 4, которым нужно доверять, тогда я просто построюупорядоченный список содержимого заголовка и просто выберите
list.size() - number of proxies I trust - 1?
Будет ли всегда выбираться правильный IP-адрес, даже если атака блокирует заголовок или добавляет другой заголовок к запросу?
Мне нужноубедитесь, что если злоумышленник подделывает заголовок, он добавит к нему заголовок, чтобы новый ip-адрес угнался до clientIp, а не после последнего прокси.
Добавление дополнительного заголовка остается вопросом, поскольку я нене знаю, еслизаголовок будет добавлен поверх существующих заголовков, чтобы мой список был построен правильно, или он будет добавлен после существующих заголовков в запросе.
Спасибо