Pregunta

¿Cómo puedo configurar el indicador de seguridad en una cookie de sesión ASP.NET, para que solo se transmita a través de HTTPS y nunca a través de HTTP simple?

¿Fue útil?

Solución

Hay dos formas, un elemento httpCookies en web.config le permite activar requireSSL que solo transmite todas las cookies, incluida la sesión solo en SSL y también dentro de la autenticación de formularios, pero si activa SSL en httpcookies, también debe activarlo dentro de la configuración de formularios también.

Editar para mayor claridad: Pon esto en <system.web>

<httpCookies requireSSL="true" />

Otros consejos

En el elemento <system.web>, agregue el siguiente elemento:

<httpCookies requireSSL="true" />

Sin embargo, si tiene un elemento <forms> en su bloque system.web\authentication, esto anulará la configuración en httpCookies, restableciéndola al valor predeterminado false.

En ese caso, también debe agregar el atributo requireSSL="true" al elemento de formularios.

Entonces terminarás con:

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

Consulte aquí y aquí para la documentación de MSDN de estos elementos.

Las cosas se complican rápidamente si habla de código registrado en un entorno empresarial. Hemos descubierto que el mejor enfoque es tener web.Release.config que contenga lo siguiente:

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

De esa manera, los desarrolladores no se ven afectados (se ejecutan en Debug), y solo los servidores que obtienen versiones de lanzamiento requieren que las cookies sean SSL.

seguro: este atributo le dice al navegador que solo envíe la cookie si la solicitud se envía a través de un canal seguro como HTTPS. Esto ayudará a proteger la cookie de pasar por solicitudes no cifradas. Si se puede acceder a la aplicación a través de HTTP y HTTPS, existe la posibilidad de que la cookie se pueda enviar en texto claro.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top