DEV Community

Ortiz de Arcanjo António David
Ortiz de Arcanjo António David

Posted on

Sessões (Sessions)

Sessões são pequenos ficheiros de texto guardados num directório específico do servidor.
O protocolo HTTP é conhecido por não guardar o estado (Stateless). Durante as requisições o navegador não consegue identificar os usuários e o que fazem.

A sessão é usada para armazenar e passar informações de uma página para outra temporariamente. Por padrão, as variáveis de sessão duram até que o usuário feche o navegador.

Principais aplicações de Sessions

  • Criação de carrinhos de compra;
  • Autenticação de Usuários;
  • Personalização no site (imagem, cor de fundo, mensagens) de acordo ao Usuário;
  • Tratamento de Ataques CSRF;
  • Contagem de visitas num site;
  • Atribuição de tempo de actividade de um usuário (session timeout);
  • Outras aplicações que necessitam de identificar mudanças por usuários;

Bibliotecas para tratamento de Sessões

  • Python: requests, Flask-Session
  • PHP: $_SESSION (nativo);
  • Elixir: Plug.Session
  • C#: Microsoft.AspNetCore.Http
  • Java: javax.servlet.http.HttpSession.

Vantagens

  • Facilidade de implementação;
  • Ajuda o HTTP no armazenamento de estado;
  • Armazena configurações que podem ser alteradas pelo usuário.

Desvantagens

  • Necessitam de mais memória do que variáveis locais;
  • Valores colocados em na Session precisam ser serializáveis;
  • Se tratados da forma incorrecta, pode revelar falhas de segurança;
  • Quando mal implementadas pode causar o sequestro de sessões.

Exemplos

Usando a Linguagem PHP, vamos apresentar 2 casos de uso da sessão:

  • Implementação da Autenticação de usuário, (login, reconhecimento de usuário e logout).
  • Tratamento de ataques CSRF.

Código Fonte
https://github.com/ortizdavid/sessions-app

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Top comments (0)