Konfigurace HSTS a automatický redirect na HTTPS v IIS
HTTP Strict Transport Security (HSTS) je vlastnost webové stránky sdělit prohlížeči, že má se serverem komunikovat pouze přes zabezpečený protokol HTTPS a nikdy pomocí nezabezpečeného HTTP. Tímto nastavením je řešena zejména situace, kdy je uživatel přesměrováván z protokolu HTTP na zabezpečený HTTPS a právě v tomto okamžiku může být útočníkem přesměrován na stránku s podvrženýnm obsahem. HSTS je realizována HTTP záhlavím, které prohlížeči říká, že má používat pouze HTTPS a jak dlouho. Společně s HSTS je tedy nutné nastavit také přesměrování HTTP požadavku na HTTPS.
Konfiguraci je možné provést úpravou souboru web.config. Na IIS v. 7+ je nutné mít nainstalovaný modul URL Rewrite a do souboru web.config dopsat příslušnou část níže uvedené konfigurace. Tato konfigurace zajistí jak odesílání potřebných HTTP záhlaví, tak přesměrování HTTP požadavků na HTTPS.
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="HTTP to HTTPS redirect" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTPS}" pattern="off" ignoreCase="true" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" /> </rule> </rules> <outboundRules> <rule name="Add Strict-Transport-Security when HTTPS" enabled="true"> <match serverVariable="RESPONSE_Strict_Transport_Security" pattern=".*" /> <conditions> <add input="{HTTPS}" pattern="on" ignoreCase="true" /> </conditions> <action type="Rewrite" value="max-age=63072000; includeSubDomains; preload" /> </rule> </outboundRules> </rewrite> </system.webServer> </configuration>