Должен ли я поставить UseForwardedHeaders () за флагом конфигурации? - PullRequest
0 голосов
/ 07 мая 2018

Для поддержки запуска моего приложения ASP.NET Core в Linux с обратным прокси-сервером (в данном случае nginx) мне пришлось добавить следующий фрагмент кода:

// Forward headers in order to be able to operate behind a reverse proxy
app.UseForwardedHeaders(new ForwardedHeadersOptions
{
    ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
});

// The above does not appear to be enough to get the right redirect URI result when
// logging in with OpenID Connect. This code snippet from
// https://github.com/aspnet/Docs/issues/2384 fixed it.
app.Use((context, next) =>
{
    if (context.Request.Headers.TryGetValue(XForwardedPathBase, out StringValues pathBase))
    {
        context.Request.PathBase = new PathString(pathBase);
    }

    if (context.Request.Headers.TryGetValue(XForwardedProto, out StringValues proto))
    {
        context.Request.Protocol = proto;
    }

    return next();
});

Я не могу найти какой-либо определенный совет о том, могу ли я оставить это включенным по умолчанию, или я должен поставить это за неким явным флагом конфигурации?

Мне кажется, что это могло бы иметь странные эффекты, если эти заголовки были добавлены, когда обратный прокси-сервер не используется? Я не могу придумать, как его можно использовать, но, возможно, я что-то упускаю.

Итак, есть ли преимущество при введении флага для этой конкретной части конфигурации, кроме, возможно, очень незначительного улучшения производительности?

1 Ответ

0 голосов
/ 08 мая 2018

Нет, не оставляйте это без обратного прокси, это опасно. Клиенты могут использовать его для предоставления ложных значений (подделки) и обмана любой имеющейся у вас логики приложения, которая проверяет эти значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...