Maison > développement back-end > C++ > Comment appliquer en toute sécurité HTTPS sur l'ensemble du site dans ASP.NET ?

Comment appliquer en toute sécurité HTTPS sur l'ensemble du site dans ASP.NET ?

Susan Sarandon
Libérer: 2024-12-31 03:39:09
original
554 Les gens l'ont consulté

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

Application de HTTPS à l'échelle du site dans ASP.NET

Contexte : Il y a plusieurs mois, un site a été implémenté où toutes les demandes devaient être effectuées via HTTPS. La seule solution viable à l'époque impliquait de vérifier la demande lors de l'événement de chargement de la page et de la rediriger vers HTTPS si nécessaire.

Solution alternative :

Une approche plus robuste consiste à utilisez HTTP Strict Transport Security (HSTS). En implémentant HSTS, vous pouvez empêcher les requêtes HTTP non sécurisées et appliquer les connexions HTTPS pendant une période spécifiée.

Configuration Web.config :

Pour configurer HSTS dans ASP.NET, ajoutez le code suivant au fichier section de votre fichier web.config :

<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>
Copier après la connexion

Code Global.asax.cs (méthode alternative) :

Bien que HSTS soit l'approche recommandée, une solution alternative implique l'ajout du code suivant à l'événement Application_BeginRequest dans 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);
   }
}
Copier après la connexion

Comparaison :

L'utilisation de HSTS offre l'avantage de sécuriser les connexions HTTPS au niveau du navigateur, alors que l'approche basée sur le code dans Global.asax.cs gère la redirection uniquement dans l'application ASP.NET. HSTS est donc une solution plus complète et recommandée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal