Фильтрация узлов с помощью веб-сервера Kestrel для ASP.NET Core
Хотя Kestrel поддерживает конфигурации с использованием префиксов, например http://example.com:5000
, Kestrel в основном не учитывает имя узла. Узел localhost
является особым случаем, используемым для привязки к адресам замыкания на себя. Любой узел, отличный от явного IP-адреса, привязывается ко всем общедоступным IP-адресам. Заголовки Host
не проверяются.
В качестве обходного решения используйте ПО промежуточного слоя фильтрации узлов. ПО промежуточного слоя добавляется в CreateDefaultBuilder, который вызывает AddHostFiltering:
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
}
ПО промежуточного слоя фильтрации узлов отключено по умолчанию. Чтобы включить ПО промежуточного слоя, определите ключ AllowedHosts
в appsettings.json
/appsettings.{Environment}.json
. Значение представляет собой разделенный точками с запятой список имен узлов без номеров портов:
appsettings.json
:
{
"AllowedHosts": "example.com;localhost"
}
Примечание.
ПО промежуточного слоя перенаправления заголовков имеет также параметр AllowedHosts. ПО промежуточного слоя перенаправления заголовков и ПО промежуточного слоя фильтрации узлов обладают сходными возможностями для различных сценариев. Параметр AllowedHosts
с ПО промежуточного слоя перенаправления заголовков подходит для случаев, когда заголовок Host
не сохраняется при переадресации запросов с помощью обратного прокси-сервера или подсистемы балансировки нагрузки. Параметр AllowedHosts
с ПО промежуточного слоя фильтрации узлов применим, когда Kestrel используется в качестве общедоступного пограничного сервера или если заголовок Host
пересылается напрямую.
Дополнительные сведения о ПО промежуточного слоя перенаправления заголовков см. в разделе Настройка ASP.NET Core для работы с прокси-серверами и подсистемами балансировки нагрузки.
ASP.NET Core
Кері байланыс
https://aka.ms/ContentUserFeedback.
Жақында қолжетімді болады: 2024 жыл бойы біз GitHub Issues жүйесін мазмұнға арналған кері байланыс механизмі ретінде біртіндеп қолданыстан шығарамыз және оны жаңа кері байланыс жүйесімен ауыстырамыз. Қосымша ақпаратты мұнда қараңыз:Жіберу және пікірді көру