Filtro host con ASP.NET server Web Core Kestrel
Sebbene Kestrel supporti la configurazione basata su prefissi, ad http://example.com:5000
esempio , Kestrel ignora in gran parte il nome host. L'host localhost
è un caso speciale usato per l'associazione agli indirizzi di loopback. Qualsiasi host che non sia un indirizzo IP esplicito esegue l'associazione a tutti gli indirizzi IP pubblici. Le intestazioni Host
non vengono convalidate.
Come soluzione alternativa, usare il middleware di filtro host. Il middleware viene aggiunto da CreateDefaultBuilder, che chiama 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>();
}
Per impostazione predefinita, il middleware di filtro host è disabilitato per impostazione predefinita. Per abilitare il middleware, definire una AllowedHosts
chiave in/appsettings.json
appsettings.{Environment}.json
. Il valore è un elenco con valori delimitati da punto e virgola di nomi host senza numeri di porta:
appsettings.json
:
{
"AllowedHosts": "example.com;localhost"
}
Nota
Il middleware delle intestazioni inoltrate include anche un'opzione AllowedHosts. Il middleware di intestazioni inoltrate e il middleware di filtro host hanno funzionalità simili per diversi scenari. L'impostazione di AllowedHosts
con il middleware delle intestazioni inoltrate è appropriato se l'intestazione Host
non viene mantenuta durante l'inoltro delle richieste con un server proxy inverso o il bilanciamento del carico. L'impostazione AllowedHosts
con il middleware di filtro host è appropriata quando Kestrel viene usata come server perimetrale pubblico o quando l'intestazione Host
viene inoltrata direttamente.
Per altre informazioni sul middleware di intestazioni inoltrate, vedere Configurare ASP.NET Core per l'uso di server proxy e servizi di bilanciamento del carico.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per