Backend - Aula 12 - Segurança e senhas dos usuários

Backend - Aula 12 - Segurança e senhas dos usuários

Segurança do Backend

Visão geral da seção: Nesta seção, o instrutor fala sobre a importância de criptografar senhas para garantir a segurança do sistema. Ele também introduz a funcionalidade Midway do Mongoose, que permite executar funções antes ou depois de determinadas ações no banco de dados.

Criptografia de Senhas

  • A criptografia de senhas é importante para trazer mais segurança ao sistema.
  • As senhas devem ser criptografadas assim que são salvas no banco de dados.
  • Isso impede que alguém com acesso restrito ao banco de dados possa ter acesso à conta do usuário.
  • A descriptografia da senha deve ser feita inteiramente no próprio backend.

Funcionalidade Midway

  • O Mongoose possui uma funcionalidade chamada Midway que permite executar funções antes ou depois de determinadas ações no banco de dados.
  • É possível usar o Midway para rodar uma função para criptografar a senha sempre que um novo usuário for salvo ou quando um usuário existente for modificado.
  • Para isso, é necessário usar o método pre e passar uma função como segundo argumento.
  • Essa função deve receber como parâmetro uma variável chamada next, que deve ser chamada no final da função para continuar com a operação.

Criptografia de Senhas

Visão Geral da Seção: Nesta seção, o instrutor explica como usar a função "Salt" do Bcrypt para criptografar senhas e armazená-las com segurança no banco de dados. Ele também aborda a importância de não enviar senhas como resposta em requisições.

Usando a Função "Salt" do Bcrypt

  • A função "Salt" é usada para gerar uma string aleatória que será usada como base para criar uma nova senha criptografada.
  • É importante usar o "await" antes da função "Salt", pois ela retorna uma Promise.
  • Para criptografar a senha, é necessário usar a função "hash", que recebe como argumentos a senha do usuário e o Salt gerado anteriormente.
  • Novos usuários podem ser criados com sucesso usando as senhas criptografadas.

Não Enviar Senhas Como Resposta em Requisições

  • É importante não enviar senhas como resposta em requisições, mesmo que elas estejam criptografadas.
  • Para evitar o envio de senhas em respostas, pode-se usar o método ".select(false)" na definição do modelo de usuário no Mongoose.

Conclusão

Visão Geral da Seção: Nesta seção final, o instrutor resume os principais pontos abordados na lição e destaca a importância da segurança das informações dos usuários.

  • Aprendemos sobre a importância de criptografar senhas e armazená-las com segurança no banco de dados.
  • Também aprendemos sobre a importância de não enviar senhas como resposta em requisições.
  • É fundamental garantir a segurança das informações dos usuários para manter sua confiança e proteger suas informações pessoais.

Transformando um usuário em objeto

Visão geral da seção: Nesta seção, o palestrante demonstra como transformar um usuário em um objeto simples do JavaScript e retirar a senha desse objeto.

Transformando o usuário em objeto

  • O objetivo é transformar o novo usuário em um objeto simples do JavaScript.
  • Para isso, é necessário chamar o tipo Object para gerar esse objeto.
  • É possível compilar todas as informações do novo usuário usando o operador de três pontos.

Retirando a senha do objeto

  • A senha deve ser retirada das informações do usuário.
  • A senha não precisa ser enviada para nenhuma requisição ou resposta.

Testando a modificação

Visão geral da seção: Nesta seção, o palestrante testa a modificação feita no código anteriormente.

Criando um novo usuário

  • Um novo usuário chamado "banana" é criado com um e-mail diferente.
  • Ao tentar criar esse novo usuário, verifica-se que a senha não foi enviada.

Atualizando informações de um usuário existente

  • Não há novas informações relevantes nesta seção.
Backend - Aula 12 - Segurança e senhas dos usuários | YouTube Video Summary | Video Highlight