Heim > Backend-Entwicklung > C++ > Wie kann HTTPS in ASP.NET sicher standortweit erzwungen werden?

Wie kann HTTPS in ASP.NET sicher standortweit erzwungen werden?

Susan Sarandon
Freigeben: 2024-12-31 03:39:09
Original
554 Leute haben es durchsucht

How to Securely Enforce HTTPS Site-Wide in ASP.NET?

HTTPS-Site-weit in ASP.NET erzwingen

Hintergrund: Vor einigen Monaten wurde eine Site implementiert, auf der Alle Anfragen mussten über HTTPS erfolgen. Die einzig praktikable Lösung bestand damals darin, die Anfrage während des Seitenladeereignisses zu überprüfen und bei Bedarf auf HTTPS umzuleiten.

Alternative Lösung:

Ein robusterer Ansatz ist Verwenden Sie HTTP Strict Transport Security (HSTS). Durch die Implementierung von HSTS können Sie ungesicherte HTTP-Anfragen verhindern und HTTPS-Verbindungen für einen bestimmten Zeitraum erzwingen.

Web.config-Konfiguration:

Um HSTS in ASP.NET zu konfigurieren, Fügen Sie den folgenden Code zum hinzu. Abschnitt Ihrer web.config-Datei:

<rewrite>
  <rules>
    <rule name="HTTP to HTTPS redirect" stopProcessing="true">
      <match url="(.*)" />
      <conditions>
        <add input="{HTTPS}" pattern="off" ignoreCase="true" />
      </conditions>
      <action type="Redirect" url="https://{HTTP_HOST}/{R:1}"
        redirectType="Permanent" />
    </rule>
  </rules>
  <outboundRules>
    <rule name="Add Strict-Transport-Security when HTTPS" enabled="true">
      <match serverVariable="RESPONSE_Strict_Transport_Security"
        pattern=".*" />
      <conditions>
        <add input="{HTTPS}" pattern="on" ignoreCase="true" />
      </conditions>
      <action type="Rewrite" value="max-age=31536000" />
    </rule>
  </outboundRules>
</rewrite>
Nach dem Login kopieren

Global.asax.cs-Code (Alternative Methode):

Während HSTS der empfohlene Ansatz ist, eine alternative Lösung beinhaltet das Hinzufügen des folgenden Codes zum Application_BeginRequest-Ereignis in Global.asax.cs:

protected void Application_BeginRequest(Object sender, EventArgs e)
{
   if (HttpContext.Current.Request.IsSecureConnection.Equals(false) &amp;&amp; HttpContext.Current.Request.IsLocal.Equals(false))
   {
    Response.Redirect("https://" + Request.ServerVariables["HTTP_HOST"]
+   HttpContext.Current.Request.RawUrl);
   }
}
Nach dem Login kopieren

Vergleich:

Die Verwendung von HSTS bietet den Vorteil der Sicherung von HTTPS-Verbindungen auf Browserebene, während der codebasierte Ansatz in Global.asax.cs verarbeitet die Umleitung nur innerhalb der ASP.NET-Anwendung. HSTS ist daher eine umfassendere und empfehlenswertere Lösung.

Das obige ist der detaillierte Inhalt vonWie kann HTTPS in ASP.NET sicher standortweit erzwungen werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage