Slovenská verzeSlovensky

wiki HSTS

Miroslav Holec

15. července. 2020

Dnešní moderní aplikace již komunikují zpravidla s využitím HTTPS. Pokud uživatel v rámci prohlížeče vyžaduje stránku s HTTP protokolem, aplikace (nebo server) obvykle provádí redirect na HTTPS verzi. To obvykle řeší v .NET Core aplikacích middleware registrovaný ve Startup.cs:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    // ...
    app.UseHttpsRedirection();
    // ...
}

To však stále znamená, že pokud uživatel v prohlížeči opakovaně zadá HTTP požadavek, musí server pokaždé provádět redirect na HTTPS verzi. Efektivnější by bylo, kdyby prohlížeč předem věděl, že komunikace nemá na HTTP smysl a rovnou vytvořil HTTPS požadavek.

Tuto informaci lze naštěstí prohlížeči sdělit pomocí HTTP hlaviček, odeslaných v rámci HTTPS komunikace. Tuto úlohu plní v ASP.NET Core aplikacích právě HSTS middleware, jehož název je odvozen od HTTP Strict Transport Security Protocol.

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    // ...
    app.UseHsts(); // nastavení HTTPS hlaviček
    app.UseHttpsRedirection(); // redirect
    // ...
}

Samotné nastavení HSTS hlaviček lze provést pomocí extension metody v ConfigureServices

public void ConfigureServices(IServiceCollection services)
{
    services.AddHsts(options =>
    {
        options.IncludeSubDomains = true;
        options.MaxAge = TimeSpan.FromDays(60);
        options.ExcludedHosts.Add("example.com");
    });
}

👨‍🎓 Webináře pro vývojáře

Vzdělávat se můžete i z pohodlí domova. Klasická školení jsem doplnil o související témata, která si můžete poslechnout v podobě živých webinářů. Přidejte se téměř 200 vývojářům, kteří se již připojili k mým webinářům!

Termín Místo
🍀 Autentizace pro API v .NET Core 21. září 2020 online více
🍀 Vývoj a správa nástrojů v .NET Core 22. září 2020 online více
🍀 C# a dokonalejší .NET Core aplikace 30. září 2020 online více
🍀 Konzumace REST API v .NET Core 1. října 2020 online více

Loading