Für Benutzer von ASP.NET MVC. Sie können Folgendes verwenden, um SSL / TLS über HTTPS auf zwei Arten auf der gesamten Site zu erzwingen:
Der harte Weg
1 - Fügen Sie den globalen Filtern das RequireHttpsAttribute hinzu:
GlobalFilters.Filters.Add(new RequireHttpsAttribute());
2 - Anti-Fälschungs-Token zur Verwendung von SSL / TLS zwingen:
AntiForgeryConfig.RequireSsl = true;
3 - Cookies müssen standardmäßig HTTPS erfordern, indem Sie die Datei Web.config ändern:
<system.web>
<httpCookies httpOnlyCookies="true" requireSSL="true" />
</system.web>
4 - Verwenden Sie das NWebSec.Owin NuGet-Paket und fügen Sie die folgende Codezeile hinzu, um die strikte Transportsicherheit auf der gesamten Site zu aktivieren. Vergessen Sie nicht, die unten stehende Preload-Direktive hinzuzufügen und Ihre Site an die HSTS Preload-Site zu senden . Weitere Informationen hier und hier . Beachten Sie, dass es eine Web.config-Methode gibt, die Sie auf der NWebSec- Site nachlesen können, wenn Sie OWIN nicht verwenden .
// app is your OWIN IAppBuilder app in Startup.cs
app.UseHsts(options => options.MaxAge(days: 30).Preload());
5 - Verwenden Sie das NWebSec.Owin NuGet-Paket und fügen Sie die folgende Codezeile hinzu, um das Festhalten öffentlicher Schlüssel (Public Key Pinning, HPKP) auf der gesamten Site zu aktivieren. Weitere Informationen hier und hier .
// app is your OWIN IAppBuilder app in Startup.cs
app.UseHpkp(options => options
.Sha256Pins(
"Base64 encoded SHA-256 hash of your first certificate e.g. cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs=",
"Base64 encoded SHA-256 hash of your second backup certificate e.g. M8HztCzM3elUxkcjR2S5P4hhyBNf6lHkmjAHKhpGPWE=")
.MaxAge(days: 30));
6 - Fügen Sie das https-Schema in die verwendeten URLs ein. Der HTTP-Header für Content Security Policy (CSP) und die Subresource Integrity (SRI) funktionieren nicht gut, wenn Sie das Schema in einigen Browsern imitieren. Es ist besser, explizit über HTTPS zu sprechen. z.B
<script src="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.4/bootstrap.min.js"></script>
Der einfache Weg
Verwenden Sie die Visual Studio-Projektvorlage von ASP.NET MVC Boilerplate , um ein Projekt mit all dem und vielem mehr zu generieren. Sie können den Code auch auf GitHub anzeigen .