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?

Foi útil?

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>

aqui aqui para a documentação MSDN destes elementos.

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top