RuiGomes Posted February 21, 2013 at 04:52 PM Report #496494 Posted February 21, 2013 at 04:52 PM Tenho um sistema de login a funcionar com a password hashed em sha256 e um salt, sendo os dois novamente hashed juntos. Quero implementar um sistema de Keep Me Logged In mas tenho algumas dúvidas quanto à segurança.. Será que é seguro guardar o username e a hash da password num cookie e se não houver login feito verificar esses cookies? Ou será inseguro?
pmg Posted February 21, 2013 at 04:58 PM Report #496497 Posted February 21, 2013 at 04:58 PM Tudo o que vem do cliente (cookies incluidos) é inseguro. Lembra-te que é possível copiar cookies de um computador para outro. What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
RuiGomes Posted February 21, 2013 at 05:01 PM Author Report #496499 Posted February 21, 2013 at 05:01 PM Qual será a opção mais eficaz para fazer o que pretendo?
pmg Posted February 21, 2013 at 05:08 PM Report #496502 Posted February 21, 2013 at 05:08 PM Segurança e facilidade de uso são, em grande medida, incompativeis. Ou tens uma ou tens outra; se aumentas uma diminuis a outra e vice-versa. O meu conselho: se o teu site não mexer em dinheiro ou coisas pessoais dos utilizadores (ou outras coisas em que a segurança seja importante) não te preocupes com a segurança e melhora a facilidade de uso. Ou seja, usa os cookies como sugeriste na primeira mensagem. Por outro lado, se o teu site tem dinheiro ou coisas pessoais ... nao facas o "Keep me Logged in" (o Amazon, por exemplo, nao tem essa opcao -- e, mesmo assim, pede a password várias vezes quando fazes uma compra). What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
Rui Carlos Posted February 21, 2013 at 05:32 PM Report #496507 Posted February 21, 2013 at 05:32 PM Diria que não deves guardar a hash da password no cliente, visto que dessa forma qualquer utilizador que a copiasse passava a ter acesso à conta até que o utilizador alterasse a password. O que deves usar é uma chave de sessão (uma string aleatória, que quando o utilizador faz logout, ou faz novamente login, é invalidada). Rui Carlos Gonçalves
pmg Posted February 21, 2013 at 06:32 PM Report #496513 Posted February 21, 2013 at 06:32 PM O que deves usar é uma chave de sessão (uma string aleatória, que quando o utilizador faz logout, ou faz novamente login, é invalidada). Pois ... aumentas a seguranca e diminuis a facilidade de uso 🙂 Nota que com a chave de sessao nao podes ter o "Keep me Logged In" como o Rui Gomes pretende. What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
Rui Carlos Posted February 21, 2013 at 07:32 PM Report #496522 Posted February 21, 2013 at 07:32 PM Pois ... aumentas a seguranca e diminuis a facilidade de uso 🙂 Nota que com a chave de sessao nao podes ter o "Keep me Logged In" como o Rui Gomes pretende. Porquê? Ou o "Keep me Logged In" não é o que penso que é, ou penso que as chaves de sessão são a solução habitual. Rui Carlos Gonçalves
HappyHippyHippo Posted February 21, 2013 at 08:02 PM Report #496526 Posted February 21, 2013 at 08:02 PM Porquê? Ou o "Keep me Logged In" não é o que penso que é, ou penso que as chaves de sessão são a solução habitual. porque quando fores a ligar novamente o browser ou retornar ao site após a limpeza de sessão por parte do servidor (timeout), não existe forma de comprovar que o valor de sessão enviado pelo cliente é válida, isto se não usar uma base de dados e efectuar restauro desse id. no entanto, ficas novamente exposto a duplicação do número de sessão. IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Rui Carlos Posted February 21, 2013 at 09:03 PM Report #496531 Posted February 21, 2013 at 09:03 PM porque quando fores a ligar novamente o browser ou retornar ao site após a limpeza de sessão por parte do servidor (timeout), não existe forma de comprovar que o valor de sessão enviado pelo cliente é válida, isto se não usar uma base de dados e efectuar restauro desse id. no entanto, ficas novamente exposto a duplicação do número de sessão. Obviamente que guardas a chave de sessão numa BD. A vantagem de usar uma chave de sessão em vez do hash da password, é que mesmo que alguém copie a tua chave de sessão, quando fizeres logout, ou quando fizeres login, a mesma deixa de ser válida. Caso contrário, só deixava de ser válida quando mudasses a password (o que normalmente acontece com muito menos frequência). Rui Carlos Gonçalves
pmg Posted February 21, 2013 at 09:23 PM Report #496535 Posted February 21, 2013 at 09:23 PM Hmmm ... eu interpretei sessao como no conceito do SESSION do php e, erradamente, assumi que seria iniciada uma nova sessao sempre que o utilizador desligasse o computador (se a gestao dos cookies pode ser feita para a sessao se manter ao desligar o computador). De qualquer maneira, a sessao seria baseada em cookies (que podem ser roubados: ver session hijacking). Mas, sim. O uso de chave de sessao é mais seguro que guardar o hash da password num cookie sem diminuir a facilidade de uso. What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now