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
<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>
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) && HttpContext.Current.Request.IsLocal.Equals(false)) { Response.Redirect("https://" + Request.ServerVariables["HTTP_HOST"] + HttpContext.Current.Request.RawUrl); } }
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!