Pergunta

Usando em processo de estado de sessão é mau quando se trata de aplicações web de escala (não joga bem com cachos, bombas quando recicla servidor).

Assumindo que você só precisa manter uma pequena quantidade de informação no estado de sessão, qual é a desvantagem de usar itens cookie criptografado para este fim, em vez de servidores estaduais específicas / de db?

Obviamente usando cookies irá criar uma pequena quantidade de sobrecarga da rede, e é óbvio que operam sob a suposição de que os cookies estão habilitados no dispositivo navegador do cliente / mobile.

O que outras armadilhas que você pode ver com a abordagem?

Isto é uma boa opção para simples, escalável e sessões robustas?

Foi útil?

Solução

Esta é uma excelente abordagem para simples, escalável e sessões robustas. É claro que a qualidade de sua criptografia é importante, e que muitas vezes é algo que muitas vezes se torna complicado de acertar, mas é possível fazer.

Não concordo com alguns dos outros cartazes:

Qualquer ataque de repetição que pode ser lançado contra um valor de cookie criptografado pode ser lançada contra uma chave de sessão armazenado como um cookie. Use https se isso importa.

Os dados da sessão armazenados em um servidor de estado ou banco de dados também é perdido se o cookie é apagado; quando a chave de sessão é perdido a sessão não pode mais ser recuperada.

Outras dicas

Outra armadilha é que eles podem ser roubado e reproduzido em seu site.

BTW:. Em vez de armazenar algumas coisas no cookie, você deve olhar também para armazenar uma chave no cookie e usar algo como memcached (obras memcached em farms de servidores)

Bem normalmente um cookie é utilizado para a identificação da sessão, por isso, enquanto a quantidade de informação é pequena, seria uma boa opção para armazenar as informações no cookie, mas você não deve armazenar qualquer coisa de valor (como CC números, SSN, etc) realmente deve ser armazenado em um cookie, mesmo se estiverem criptografados.

Não sou especialista, mas na minha experiência eu encontrei o seguinte para ser verdade (pelo menos usando PHP e ASP.Net).

Cookie

  • [pro] Escalas bem, uma vez que é transmitida em cada solicitação
  • [pro] Cookie pode ser obrigado a apresentar apenas através de uma conexão SSL
  • [pro] Pode ser usado tecnologias entre servidores e máquinas de cross-servidor
  • [con] Os dados são transmitidos em cada solicitação e resposta
  • [con] precisa ser habilitado no navegador

Estado Server / DB

  • [pro] Dados armazenados somente no servidor
  • [pro] Dados persistir mesmo se o usuário limpa os cookies
  • tecnologias entre servidores [pro] Pode ser usado
  • [con] requer um ID para ser passado a pedido / resposta (assim requer cookies ou anexar a cada URL)
  • [con] não escala bem em modos padrão, mas se uma máquina inteira (s) pode ser dedicado especificamente e exclusivamente para estado, em seguida, este não é um grande problema. Muitas outras técnicas de dimensionamento lá fora, que podem ser seguidas para escalabilidade.
  • [con] Requer uma variável de sessão ID passou por URL ou cookies ou outros meios, para manter o usuário vinculado aos dados.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top