Предотвратить изменение X-Forwarded-For - PullRequest
1 голос
/ 26 мая 2019

У нас есть простой API, который находится в Azure VM, мы включили шлюз приложений.И приложение работает нормально, пока нам не потребуется регистрировать ip клиентов, потому что мы должны определить местоположение наших клиентов через ipstack.

Я добавил этот код в наш HomeController

var ip = string.Empty;

if (HttpContext.Request.Headers.ContainsKey("X-Forwarded-For"))
{
    ip = HttpContext.Request.Headers["X-Forwarded-For"].FirstOrDefault();
}

Это прекрасно работает, пока я не решил использовать Postman для вызова API и добавил X-Forwarded-For в запросе.

postman fake ip injected

Я включил заголовок в результате в наш API просто для проверки и ...

"X-Forwarded-For": "<script>alert('test');</script>,192.168.0.1", //masked my real Ip

"X-Forwarded-For": "0.0.0.0,192.168.0.1" //fake ip (0.0.0.0)

Есть ли способ предотвратить это?

Я включилкод ниже в файле startup.cs, но все равно не повезло.

            services.Configure<ForwardedHeadersOptions>(c =>
            {
                //c.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
                //c.ForwardLimit = 1;
                //c.KnownProxies.Add(IPAddress.Parse("127.0.0.0"));
                c.ForwardedForHeaderName = "X-Forwarded-For-My-Custom-Header-Name";
            });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...