Como posso definir o sinalizador seguro em um cookie de sessão ASP.NET?
-
22-07-2019 - |
Pergunta
Como posso definir o sinalizador seguro em um cookie de sessão ASP.NET, de modo que ela só vai ser transmitido através de HTTPS e nunca mais simples HTTP?
Solução
Existem duas maneiras, um elemento httpCookies
em web.config
permite ligar requireSSL
que apenas transmitem todos os cookies, incluindo sessão em SSL somente e também no interior a autenticação de formulários, mas se você ativar o SSL em httpcookies você também deve ligá-lo dentro formas de configuração também.
Editar para maior clareza:
Colocar isso em <system.web>
<httpCookies requireSSL="true" />
Outras dicas
No elemento <system.web>
, adicione o seguinte elemento:
<httpCookies requireSSL="true" />
No entanto, se você tem um elemento <forms>
em seu bloco de system.web\authentication
, então este irá substituir a configuração em httpCookies
, definindo-o de volta para o false
padrão.
Nesse caso, você precisa adicionar o atributo requireSSL="true"
ao elemento formas também.
Assim você vai acabar com:
<system.web>
<authentication mode="Forms">
<forms requireSSL="true">
<!-- forms content -->
</forms>
</authentication>
</system.web>
As coisas ficam confuso rapidamente, se você está falando sobre o check-in de código em um ambiente corporativo. Descobrimos que a melhor abordagem é ter o web.Release.config conter o seguinte:
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
<authentication>
<forms xdt:Transform="Replace" timeout="20" requireSSL="true" />
</authentication>
</system.web>
Dessa forma, os desenvolvedores não são afetados (em execução no Debug), e apenas os servidores que recebem compilações Release estão exigindo cookies para ser SSL.
seguro - Este atributo diz ao navegador para enviar apenas o cookie se a solicitação está sendo enviada através de um canal seguro, como HTTPS. Isso ajudará a proteger o cookie de ser preterido pedidos não criptografadas. Se o aplicativo pode ser acessado através de HTTP e HTTPS, em seguida, há o potencial que o cookie pode ser enviado em texto claro.