DEV Community

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

Posted on

4

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

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay