Criar Browser Game - 3# Por que você deve ser hashing dados sensíveis

Quando as pessoas pensam sobre segurança, que pensar em um login / sistema de registo. Eles geralmente tendem a não pensar sobre o que você precisa para proteger a maioria - os dados de um usuário.

Tomemos, por exemplo, o sistema de autenticação simples que nós construímos nos últimos dois posts. Em ambos os casos, havia pelo menos uma linha de código que mistura a senha do usuário antes que ele foi armazenado no banco de dados. Isso porque, quando você está construindo algo que as pessoas serão armazenar seus dados na,mantendo dados do usuário do seguro é de vital importância.

Não há ses, sem apelo nem agravo sobre a situação. Se você estiver armazenando qualquer tipo de dados sigilosos - seja senhas, números de cartão de crédito, ou qualquer outra coisa que pode ser considerado "sensível" (mesmo que seja apenas da mãe de usuário de solteira nome ou algo assim), você precisa se quer criptografar ou hash de dados.

Qual é a diferença entre criptografia e hashing? Há apenas uma - a criptografia pode ser quebrada. Não importa o quão forte é a sua criptografia, se alguém for determinado o suficiente eles eventualmente conseguem quebrá-lo. Puro e simples.

É por isso que, se os dados não é algo que você precisa para recuperar e exibir, você deve isso ao invés de hash criptografá-lo. Por hash dos dados, é fornecer um "sal" eo valor de hash, e ele é convertido unidirecional em uma seqüência de caracteres. O processo de hashing dados torna irreversível - se você fosse hash, por exemplo, '23skidoo ', você pode receber de volta algo como '23Kub08nEFeSs. Seja qual for dados hash se foi - você não pode recuperá-la.

Mas mesmo que os dados em hash é ido, isso não significa que é inútil - você ainda pode usá-lo para comparações.Como exemplo, vejamos um pseudocódigo para um sistema de registro e login que usa hashing para proteger senhas do usuário. Aqui está o que iria acontecer na página de registo:

if (nome de usuário e senhas não sejam tomadas jogo) {usuário inserir no banco de dados com nome de utilizador enviado para nós, a senha (hash)}

Muito simples, certo? Aqui está a lógica para a página de login:

variável hashedpassword hash = (senha enviada por nós) if (usuário existe no banco de dados com nome passou para nós e senha de hash) {log do usuário no e redirecioná-los para a página de login} else {mensagem de erro de login - password / username incompatibilidade !}

E é realmente assim tão simples. Contanto que você não precisa recuperar os dados e exibi-lo de volta para o usuário,hash é o caminho a percorrer para a protecção de dados.

Agora, você pode estar pensando "mas espera - isto é tudo muito bem, mas o que acontece se um usuário esquece sua senha e eu quero e-mail a eles? Se eu hash sua senha, não posso enviá-lo para eles - "e você estaria certo.Nesse caso, você tem duas opções. Você poderia criptografar a senha em vez de hash, e então apenas decifrá-lo e enviá-los de que uma - ou você poderia simplesmente gerar automaticamente uma nova senha para eles, re-hash-lo e armazená-lo no banco de dados e, em seguida enviá-los que a nova senha. Que abordagem você escolhe é até você.

Faça o que fizer, não armazene dados sensíveis em texto simples. Leva apenas um deslize para um atacante obter acesso ao seu banco de dados e, instantaneamente, ser capaz de ler todas as senhas do usuário.

Qual vai ajudar você a prevenir que o atacante realmente ter acesso a todas as contas de usuário. Esperemos que esta entrada breve mostrou como é fácil manter os dados confidenciais de um usuário seguro - o que ajudará a proteger você e seus usuários a longo prazo.

0 Response to "Criar Browser Game - 3# Por que você deve ser hashing dados sensíveis"

Postar um comentário

powered by Blogger | WordPress by Newwpthemes | Converted by BloggerTheme