Đối với những người sử dụng ASP.NET MVC. Bạn có thể sử dụng cách sau để buộc SSL / TLS qua HTTPS trên toàn bộ trang web theo hai cách:
Con đường gian nan
1 - Thêm RequireHttpsAttribution vào các bộ lọc toàn cầu:
GlobalFilters.Filters.Add(new RequireHttpsAttribute());
2 - Buộc mã thông báo chống giả mạo sử dụng SSL / TLS:
AntiForgeryConfig.RequireSsl = true;
3 - Yêu cầu Cookies yêu cầu HTTPS theo mặc định bằng cách thay đổi tệp Web.config:
<system.web>
<httpCookies httpOnlyCookies="true" requireSSL="true" />
</system.web>
4 - Sử dụng gói Nuebet của NWebSec.Owin và thêm dòng mã sau đây để bật Strict Transport Security trên trang web. Đừng quên thêm chỉ thị Tải trước bên dưới và gửi trang web của bạn đến trang web Tải trước HSTS . Thêm thông tin ở đây và ở đây . Lưu ý rằng nếu bạn không sử dụng OWIN, có một phương pháp Web.config bạn có thể đọc trên trang web của NAebSec .
// app is your OWIN IAppBuilder app in Startup.cs
app.UseHsts(options => options.MaxAge(days: 30).Preload());
5 - Sử dụng gói Nuebet của NWebSec.Owin và thêm dòng mã sau đây để bật Ghim khóa công khai (HPKP) trên trang web. Thêm thông tin ở đây và ở đây .
// 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 - Bao gồm lược đồ https trong bất kỳ URL nào được sử dụng. Chính sách bảo mật nội dung (CSP) Tiêu đề HTTP và tính toàn vẹn nguồn phụ (SRI) không hoạt động tốt khi bạn bắt chước lược đồ trong một số trình duyệt. Tốt hơn là nên nói rõ về HTTPS. ví dụ
<script src="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.4/bootstrap.min.js"></script>
Cách dễ dàng
Sử dụng mẫu dự án ASP.NET MVC Boilerplate Visual Studio để tạo một dự án với tất cả những thứ này và được tích hợp nhiều hơn nữa. Bạn cũng có thể xem mã trên GitHub .