Для тих, хто використовує ASP.NET MVC. Ви можете використовувати наступне, щоб форсувати SSL / TLS через HTTPS на всьому сайті двома способами:
Важкий шлях
1 - Додайте RequireHttpsAttribute до глобальних фільтрів:
GlobalFilters.Filters.Add(new RequireHttpsAttribute());
2 - змусити маркери проти підробки використовувати SSL / TLS:
AntiForgeryConfig.RequireSsl = true;
3 - Потрібно, щоб файли cookie за замовчуванням вимагали HTTPS, змінивши файл Web.config:
<system.web>
<httpCookies httpOnlyCookies="true" requireSSL="true" />
</system.web>
4 - Використовуйте пакет NWebSec.Owin NuGet і додайте наступний рядок коду, щоб дозволити сувору безпеку транспорту по всьому сайту. Не забудьте додати директиву попереднього завантаження нижче та подати свій сайт на сайт попереднього завантаження HSTS . Більше інформації тут і тут . Зауважте, що якщо ви не використовуєте OWIN, на веб- сайті NWebSec є метод Web.config, про який можна прочитати .
// app is your OWIN IAppBuilder app in Startup.cs
app.UseHsts(options => options.MaxAge(days: 30).Preload());
5 - Використовуйте пакет NWebSec.Owin NuGet та додайте наступний рядок коду, щоб увімкнути прив'язку відкритого ключа (HPKP) на сайті. Більше інформації тут і тут .
// 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 - Включіть схему https у будь-яку використану URL-адресу. HTTP-заголовок політики безпеки вмісту (CSP) та цілісність субресурсів (SRI) не грають добре, коли ви імітуєте схему в деяких браузерах. Краще бути явним щодо HTTPS. напр
<script src="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.4/bootstrap.min.js"></script>
Легкий шлях
Використовуйте шаблон проекту ASP.NET MVC Boilerplate Visual Studio, щоб створити проект із усім цим та багато іншого, який можна вбудувати. Ви також можете переглянути код на GitHub .