Application de HTTPS à l'échelle du site dans ASP.NET : un guide complet
Pour garantir une communication sécurisée, il est crucial de rediriger tout le trafic du site Web vers HTTPS. La mise en œuvre de cette mesure impliquait historiquement de vérifier les événements de chargement de page individuels et de rediriger les requêtes non HTTPS. Cependant, il existe des méthodes plus efficaces, notamment l'utilisation des paramètres web.config.
HTTP Strict Transport Security (HSTS)
HSTS établit une directive qui demande aux navigateurs de toujours se connecter vers un site Web via HTTPS, quelle que soit la demande initiale. L'activation de HSTS implique l'ajout du code suivant à votre fichier web.config :
<configuration> <system.webServer> <rewrite> <rules> <!-- Prevent HTTP requests and enable HSTS --> <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> </rewrite> </system.webServer> </configuration>
Cette configuration redirige toutes les requêtes HTTP vers HTTPS et ajoute un en-tête HSTS aux réponses HTTPS ultérieures, demandant aux navigateurs d'appliquer les connexions HTTPS pour un nombre spécifié. période.
Solution originale
Bien que HSTS soit la méthode recommandée, le le code suivant peut toujours être utilisé comme solution de secours :
public void Application_BeginRequest(Object sender, EventArgs e) { if (!HttpContext.Current.Request.IsSecureConnection && !HttpContext.Current.Request.IsLocal) { Response.Redirect("https://" + Request.ServerVariables["HTTP_HOST"] + HttpContext.Current.Request.RawUrl); } }
Remarque : Cette méthode repose sur l'événement Application_BeginRequest, qui peut ne pas fonctionner dans tous les scénarios. HSTS, en revanche, offre une solution plus robuste et fiable.
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!