Question

Comment définir l'indicateur Sécurisé sur un cookie de session ASP.NET afin qu'il ne soit transmis que par HTTPS et jamais par HTTP pur?

Était-ce utile?

La solution

Il y a deux façons, un httpCookies élément dans web.config vous permet d'activer requireSSL qui ne transmet que tous les cookies, y compris les sessions en SSL uniquement et dans l'authentification par formulaires, mais si vous activez SSL sur httpcookies, vous doit également l'activer à l'intérieur de la configuration des formulaires.

Modifier pour plus de clarté: Mettez ceci dans <system.web>

<httpCookies requireSSL="true" />

Autres conseils

Dans l'élément <system.web>, ajoutez l'élément suivant:

<httpCookies requireSSL="true" />

Toutefois, si vous avez un élément <forms> dans votre bloc system.web\authentication, le remplacement du paramètre défini dans httpCookies sera remplacé par le paramètre par défaut false.

Dans ce cas, vous devez également ajouter l'attribut requireSSL="true" à l'élément de formulaire.

Vous allez donc vous retrouver avec:

<system.web>
    <authentication mode="Forms">
        <forms requireSSL="true">
            <!-- forms content -->
        </forms>
    </authentication>
</system.web>

Voir ici et ici pour la documentation MSDN de ces éléments.

Si vous parlez de code archivé dans un environnement d'entreprise, les choses se compliquent rapidement. Nous avons constaté que la meilleure approche consiste à ce que web.Release.config contienne les éléments suivants:

<system.web>
  <compilation xdt:Transform="RemoveAttributes(debug)" />
  <authentication>
      <forms xdt:Transform="Replace" timeout="20" requireSSL="true" />
  </authentication>
</system.web>

De cette façon, les développeurs ne sont pas affectés (sous Debug) et seuls les serveurs dotés des versions Release exigent que les cookies soient en SSL.

secure - Cet attribut indique au navigateur de n'envoyer le cookie que si la demande est envoyée sur un canal sécurisé tel que HTTPS. Cela aidera à protéger le cookie contre les requêtes non chiffrées. Si vous pouvez accéder à l'application via HTTP et HTTPS, le cookie peut être envoyé en texte clair.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top