Filtragem de host com o servidor Web Kestrel do ASP.NET Core
Embora o Kestrel permita a configuração com base em prefixos como http://example.com:5000
, o Kestrel geralmente ignora o nome do host. O host localhost
é um caso especial usado para a associação a endereços de loopback. Todo host que não for um endereço IP explícito será associado a todos os endereços IP públicos. Cabeçalhos Host
não são validados.
Como uma solução alternativa, use o Middleware de Filtragem de Host. O middleware é adicionado pelo CreateDefaultBuilder, que chama 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>();
}
Middleware de Filtragem de Host está desabilitado por padrão. Para habilitar o middleware, defina uma chave AllowedHosts
no appsettings.json
/appsettings.{Environment}.json
. O valor dessa chave é uma lista separada por ponto e vírgula de nomes de host sem números de porta:
appsettings.json
:
{
"AllowedHosts": "example.com;localhost"
}
Observação
Middleware de Cabeçalhos Encaminhados também tem uma opção AllowedHosts. Middleware de Cabeçalhos Encaminhados e Middleware de filtragem de Host têm funcionalidades semelhantes para cenários diferentes. A definição de AllowedHosts
com Middleware de Cabeçalhos Encaminhados é apropriada quando o cabeçalho Host
não é preservado ao encaminhar solicitações com um servidor proxy reverso ou um balanceador de carga. A definição de AllowedHosts
com Middleware de Filtragem de Host é apropriada quando o Kestrel é usado como um servidor de borda voltado ao público ou quando o cabeçalho Host
é encaminhado diretamente.
Para obter mais informações sobre Middleware de Cabeçalhos Encaminhados, veja Configurar o ASP.NET Core para funcionar com servidores proxy e balanceadores de carga.
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários