Bagi yang menggunakan ASP.NET MVC. Anda dapat menggunakan yang berikut untuk memaksa SSL / TLS melalui HTTPS di seluruh situs dengan dua cara:
Jalan yang Keras
1 - Tambahkan RequireHttpsAttribute ke filter global:
GlobalFilters.Filters.Add(new RequireHttpsAttribute());
2 - Paksa token Anti-Pemalsuan untuk menggunakan SSL / TLS:
AntiForgeryConfig.RequireSsl = true;
3 - Membutuhkan Cookie untuk meminta HTTPS secara default dengan mengubah file Web.config:
<system.web>
<httpCookies httpOnlyCookies="true" requireSSL="true" />
</system.web>
4 - Gunakan paket NWebSec.Owin NuGet dan tambahkan baris kode berikut untuk mengaktifkan Keamanan Transportasi Ketat di seluruh situs. Jangan lupa untuk menambahkan arahan Preload di bawah ini dan kirimkan situs Anda ke situs Preload HSTS . Informasi lebih lanjut di sini dan di sini . Perhatikan bahwa jika Anda tidak menggunakan OWIN, ada metode Web.config yang dapat Anda baca di situs NWebSec .
// app is your OWIN IAppBuilder app in Startup.cs
app.UseHsts(options => options.MaxAge(days: 30).Preload());
5 - Gunakan paket NWebSec.Owin NuGet dan tambahkan baris kode berikut untuk mengaktifkan Pinning Kunci Publik (HPKP) di seluruh situs. Informasi lebih lanjut di sini dan di sini .
// 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 - Sertakan skema https dalam URL apa pun yang digunakan. Kebijakan Keamanan Konten (CSP) HTTP header dan Subresource Integrity (SRI) tidak bermain bagus ketika Anda meniru skema di beberapa browser. Lebih baik untuk eksplisit tentang HTTPS. misalnya
<script src="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.4/bootstrap.min.js"></script>
Cara Mudah
Gunakan template proyek ASP.NET MVC Boilerplate Visual Studio untuk menghasilkan sebuah proyek dengan semua ini dan lebih banyak lagi bawaannya. Anda juga dapat melihat kode pada GitHub .