Quero que meu site tenha uma caixa de seleção na qual os usuários possam clicar para que não precisem fazer login sempre que visitarem meu site. Eu sei que precisarei armazenar um cookie no computador deles para implementar isso, mas o que deve estar contido nesse cookie?
Além disso, há erros comuns a serem observados para impedir que esse cookie apresente uma vulnerabilidade de segurança, o que poderia ser evitado enquanto a funcionalidade 'lembre-se de mim' ainda é exibida?
security
cookies
remember-me
Vort3x
fonte
fonte
Respostas:
Prática recomendada aprimorada de cookie de login persistente
Você pode usar esta estratégia descrita aqui como melhor prática (2006) ou uma estratégia atualizada descrita aqui (2015):
Essa abordagem fornece defesa em profundidade. Se alguém conseguir vazar a tabela do banco de dados, isso não dará a um invasor uma porta aberta para se passar por usuários.
fonte
Eu armazenaria um ID do usuário e um token. Quando o usuário voltar ao site, compare essas duas informações com algo persistente como uma entrada de banco de dados.
Quanto à segurança, apenas não coloque nada que permita que alguém modifique o cookie para obter benefícios extras. Por exemplo, não armazene seus grupos de usuários ou sua senha. Qualquer coisa que possa ser modificada que possa contornar sua segurança não deve ser armazenada no cookie.
fonte
Armazene seu UserId e um RememberMeToken. Quando eles se conectam com o recurso Lembre-me marcado, gera um novo RememberMeToken (que invalida todas as outras máquinas marcadas como Lembre-se de mim).
Quando eles retornarem, procure-os pelo token de lembrar-me e verifique se o UserId corresponde.
fonte
Investigando sessões persistentes, descobri que simplesmente não vale o risco à segurança. Use-o se for absolutamente necessário, mas você deve considerar essa sessão apenas fracamente autenticada e forçar um novo login para qualquer coisa que possa ter valor para um invasor.
O motivo é claro, é que seus cookies que contêm sua sessão persistente são tão facilmente roubados.
4 maneiras de roubar seus cookies (de um comentário de Jens Roland na página com
@splattne
base em sua resposta):fonte