Per coloro che utilizzano ASP.NET MVC. È possibile utilizzare quanto segue per imporre SSL / TLS su HTTPS sull'intero sito in due modi:
The Hard Way
1 - Aggiungi RequireHttpsAttribute ai filtri globali:
GlobalFilters.Filters.Add(new RequireHttpsAttribute());
2 - Forza token anti-contraffazione per utilizzare SSL / TLS:
AntiForgeryConfig.RequireSsl = true;
3 - Richiede i cookie per richiedere HTTPS per impostazione predefinita modificando il file Web.config:
<system.web>
<httpCookies httpOnlyCookies="true" requireSSL="true" />
</system.web>
4 - Utilizzare il pacchetto NuGet NWebSec.Owin e aggiungere la seguente riga di codice per abilitare Strict Transport Security attraverso il sito. Non dimenticare di aggiungere la direttiva Preload di seguito e inviare il tuo sito al sito HSTS Preload . Maggiori informazioni qui e qui . Si noti che se non si utilizza OWIN, esiste un metodo Web.config che è possibile leggere sul sito NWebSec .
// app is your OWIN IAppBuilder app in Startup.cs
app.UseHsts(options => options.MaxAge(days: 30).Preload());
5 - Utilizzare il pacchetto NuGet NWebSec.Owin e aggiungere la seguente riga di codice per abilitare Pinning chiave pubblica (HPKP) in tutto il sito. Maggiori informazioni qui e qui .
// 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 - Includi lo schema https negli URL utilizzati. L' intestazione HTTP e l'Integrità delle risorse secondarie (SRI) di Content Security Policy (CSP) non funzionano bene quando si imita lo schema in alcuni browser. È meglio essere espliciti su HTTPS. per esempio
<script src="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.4/bootstrap.min.js"></script>
Il modo più semplice
Utilizzare il modello di progetto ASP.NET MVC Boilerplate Visual Studio per generare un progetto con tutto questo e molto altro ancora incorporato. È inoltre possibile visualizzare il codice su GitHub .