IF977 / BikeGuide

Projeto da disciplina Engenharia de Software (IF977)
0 stars 3 forks source link

Criptografando página das Models #11

Closed bernardomelo closed 7 years ago

bernardomelo commented 7 years ago

Bom dia/tarde/noite,

Vinícius falou durante nossa apresentação sobre uma dificuldade na segurança que poderíamos vir a ter, que seria a segurança dos dados dos clientes - login e senha. Como estamos upando tudo em um Github público, ficaria exposto nossas tabelas. Vi que existem gem's que criptografam o db do rails, mas só encontrei pra sqlite e estamos usando o postgresql.

Vocês conhecem alguma outra ferramenta para nos auxiliar nesse processo?

grato.

SandrineMartins commented 7 years ago

Gem attr_encrypted

Alguns links que podem ajudar:

jorgehclinhares commented 7 years ago

Calma, detalha um pouco melhor o seu problema. O que você quer dizer com "upando tudo em um Github público"? Fora isso, detalha exatamente como vcs estão fazendo isso.

bernardomelo commented 7 years ago

Jorge, na nossa área de login, teremos que salvar algumas credenciais de usuários (creio eu que ficará na model). Por que estamos upando em um git público, essas informações ficarão de livre acesso pra qualquer um vir aqui e ver (palavras de Garcia).

Estamos implementando o api de login do Google. Lucas Serra, também monitor, nos indiciou algumas alternativas como o "salt".

jorgehclinhares commented 7 years ago

Vê, tem diferença entre criptograr o banco de dados e criptograr os dados (campos). Não sei ao certo como vc está realizando este processo mas vc precisa de uma lib que criptografe e descriptografe os seus dados. No seu caso, a senha faz mais sentido, creio eu. Portanto, o que vc vai salvar no banco de dados é a hash da senha que o usuário cadastrou e não a senha propriamente dita. Em caso de qualquer outro método de autenticação, como o Google. Vc não tem acesso a senha do cara, só ao email. Se faz sentido para você que o email do cara não seja descoberto, então vc pode tbm criptograr o email e salvar no banco. Essas libs que Sandrine mandou podem te ajudar. Não tem mistério, qnd a senha e/ou o email chegar no seu controlador vc vai fazer o acionamento da lib de criptografia e salvar através do seu modelo os dados do cara no banco, caso vc queria recuperar o email e a senha pra fazer quaisquer validações vc usa a mesma lib que ela vai te devolver os dados sem criptografia.

Rails não é meu framework predileto, costumo desenvolver em nodejs. Se serve de exemplo, o próprio nodejs possui uma lib própria para criptografia e descriptografia. Eu costumo confiar mais em libs próprias dos framewokrs dq libs desenvolvidas por terceiros. A não ser que essa seja muito bem reconhecida pela comunidade.

bernardomelo commented 7 years ago

Tentamos integrar uma lib boa pra criptografar/descriptografar juntamente com o API do Google, mas estava dando muita dor de cabeça e pensando no "timebox" de toda a coisa, decidimos que já passou da conta o tempo investido nisso. Iremos implementar uma autenticação via gem 'sorcery'.