Usuário com melhor resposta
Utilizar session para verificar se o usuário está logado é seguro?

Pergunta
-
Olá pessoal,
gostaria de saber se posso usar session para verificar se o usuário logou certinho no sistema ou não. Trabalho com windows forms por muito tempo, mas com web sou realmente um novato.
Meu código ficou assim:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="CMS.WebServer.Default" %> <% //temos que verificar se existe login na session if ((Session["login"] == null) || (string.IsNullOrWhiteSpace(Session["login"].ToString()))) { Response.Redirect("/Pages/IAM/Login.aspx"); } else { Response.Redirect("www.terra.com.br"); } %>
É possível fazer uma injection na session para "logar de forma clandestina" no sistema?
O que vocês aconselham sobre login e segurança?
Obrigado
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand" (Martin Fowler)
Respostas
-
Olá Leandro.
Bem, o asp.net já tem um provedor para segurança web(usuário, grupo etc). E vc pode se beneficiar dele, já que o mesmo já controla a autenticação(parte de login) e autorização(ve se o usuário tem acesso). Isso é ótimo, pq vc pode falar que uma determinada página ou diretório só pode acessar pessoas logadas, ou somente pessoas logadas que estão em um determinado grupo de usuários.
Aconselho fortemente a vc ler este artigo que ensina como emplementar(obs: não se assuste com o tamanho dele, é pq ele explica com riqueza de detalhes):
Qualquer dúvida na implementação do membership provider, fique a vontade para postar sua dúvida.
Abraços.
- Marcado como Resposta LeandrodeMelloFagundes quarta-feira, 15 de setembro de 2010 19:01
-
Amigo,
eu não tenho nada contra sessions, inclusive uso bastante em minhas aplicações e o jeito que você implementou aí está correto, pode continuar com o desenvolvimento de sua aplicação.
O que o Ricardo falou, é realmente útil, poupa bastante trabalho e a "lógica" do negócio é sensacional, vale a pena ler e implementar o membership provider, tem até uns esquemas de personalização do provider. Lembrando que esse provider também usa sessions, então só seria um esquema (talvez) melhor de se implementar.
Gustavo Bergamo- Marcado como Resposta LeandrodeMelloFagundes quarta-feira, 15 de setembro de 2010 19:01
Todas as Respostas
-
Olá Leandro.
Bem, o asp.net já tem um provedor para segurança web(usuário, grupo etc). E vc pode se beneficiar dele, já que o mesmo já controla a autenticação(parte de login) e autorização(ve se o usuário tem acesso). Isso é ótimo, pq vc pode falar que uma determinada página ou diretório só pode acessar pessoas logadas, ou somente pessoas logadas que estão em um determinado grupo de usuários.
Aconselho fortemente a vc ler este artigo que ensina como emplementar(obs: não se assuste com o tamanho dele, é pq ele explica com riqueza de detalhes):
Qualquer dúvida na implementação do membership provider, fique a vontade para postar sua dúvida.
Abraços.
- Marcado como Resposta LeandrodeMelloFagundes quarta-feira, 15 de setembro de 2010 19:01
-
Amigo,
eu não tenho nada contra sessions, inclusive uso bastante em minhas aplicações e o jeito que você implementou aí está correto, pode continuar com o desenvolvimento de sua aplicação.
O que o Ricardo falou, é realmente útil, poupa bastante trabalho e a "lógica" do negócio é sensacional, vale a pena ler e implementar o membership provider, tem até uns esquemas de personalização do provider. Lembrando que esse provider também usa sessions, então só seria um esquema (talvez) melhor de se implementar.
Gustavo Bergamo- Marcado como Resposta LeandrodeMelloFagundes quarta-feira, 15 de setembro de 2010 19:01
-
Pessoal, muito obrigado.
Vou ler sim o artigo (assim que der uma brecha no tempo) e provavelmente vou implementar.
Ambos responderam a dúvida, um dando uma solução melhor e outro afirmando que o que eu estava fazendo estava certo.
Muito obrigado
Abraços
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand" (Martin Fowler)