4 Coisas que Você Nunca Deve Armazenar no Seu Banco de Dados
Feb 6, 2017
Bases de dados são principalmente utilizadas para suportar diversas aplicações críticas para o negócio. Elas podem armazenar vários tipos de dados. No entanto, existem algumas coisas que você nunca deve guardar em uma base de dados.
Estas técnicas básicas de database security ajudarão a proteger seus dados:
Credenciais Inseguras
Provavelmente é um ponto óbvio, mas não é uma boa ideia armazenar senhas em texto puro no seu banco de dados.
Se um hacker obtiver acesso aos dados nesta tabela, ele terá uma lista de todas as senhas de todos os usuários. Essas senhas estão em texto simples e legível, que pode ser usado para entrar no sistema como se o hacker fosse esse usuário. Isso pode não parecer um grande problema: se o hacker já acessou o sistema, por que ele precisaria de um login? O problema é que as pessoas costumam usar a mesma senha para várias contas. Se um hacker tem nomes de usuários e senhas, ele pode usar essas informações em outros sites. Então, como você resolve essa questão? Criptografe a senha antes de armazená-la. Esse processo é frequentemente chamado de “hashing” e também pode ser combinado com “salting”.
O hashing envolve aplicar um algoritmo a uma senha inserida, que a criptografa. Ela pode então ser armazenada no banco de dados. Para verificar essa senha, o sistema pode executar o mesmo processo de hashing sobre o valor que o usuário inseriu e comparar o resultado com o valor hash previamente armazenado (a senha correta). Muitas linguagens de programação possuem uma funcionalidade integrada para realizar isso por você. Em resumo: nunca armazene senhas em texto simples em um banco de dados.
Dados duplicados
Armazenar dados duplicados no seu banco de dados não é uma boa ideia. Isso ocupa mais espaço no seu banco de dados, o que pode ser uma quantidade considerável se você tiver um banco de dados grande. Além disso, pode causar problemas quando você precisa atualizar os dados, pois precisa atualizá-los em vários lugares. A única exceção a isso é quando você está criando um data warehouse. Esse tipo de banco de dados é otimizado para consultas rápidas, em vez de atualizações, e geralmente contém dados duplicados.
Uma das vantagens de usar um banco de dados relacional para armazenar dados é a capacidade de guardar informações em múltiplas tabelas, com cada tabela representando uma entidade, que é então vinculada uma à outra. Isso é conhecido como “normalização”. Permite que você tenha uma única tabela para cada entidade e use números de ID (ou outros valores-chave) para interligar as tabelas.
Isso significa que é mais fácil atualizar os dados se você precisar fazer alterações em alguns valores. Também economiza espaço e muitas vezes pode melhorar o desempenho ao fazer alterações nos dados.
Arquivos como imagens
Os bancos de dados permitem armazenar arquivos dentro de tabelas no banco de dados, como imagens.
Agora, embora você possa criar tabelas e colunas para armazenar arquivos (como o tipo de dado BLOB do Oracle), isso não significa que você deva. Armazenar um arquivo em uma tabela de banco de dados significa que você precisa usar lógica de banco de dados (e possivelmente lógica de aplicação) para acessar o arquivo. Isso aumenta o tamanho do seu banco de dados e degrada seu desempenho. Também torna os backups e a corrupção de dados mais difíceis de lidar. Uma abordagem melhor para armazenar arquivos e imagens é usar os servidores de arquivos. É para isso que eles são feitos. Fazer isso permite um acesso mais rápido aos arquivos, acesso mais fácil aos metadados dos arquivos e funcionalidades de backup e restauração mais fáceis.
Dados de Cartão de Crédito
Finalmente, você não deve armazenar informações de cartão de crédito em seu banco de dados, a menos que seja absolutamente necessário.
Isso inclui nomes dos proprietários de cartões de crédito, números, códigos CVV e datas de validade. Há um risco muito grande envolvido. Se um hacker obtiver acesso aos dados de cartões de crédito do seu sistema, isso terá um grande impacto na sua empresa e nos seus clientes. Você também precisa ser auditado externamente para garantir que está em conformidade com padrões rigorosos — nomeadamente PCI DSS — se armazenar números de cartões de crédito. Isso cria mais problemas para o seu departamento de TI e significa despesas adicionais. Uma abordagem melhor é usar uma solução existente, como Authorize.net ou PayPal. Essas organizações já desenvolveram o software, comprovaram sua conformidade e muitas outras empresas já utilizam e confiam nessas empresas. É melhor evitar armazenar dados de cartões de crédito completamente. Fazer isso não vale o risco, e outras empresas fazem isso melhor.
Compartilhar em
Saiba Mais
Sobre o autor
Ben Brumm
Desenvolvedor de Software & Analista de Negócios
Ben é um desenvolvedor de software e analista de negócios com mais de 11 anos de experiência. Residente em Melbourne, Austrália, ele tem trabalhado com bancos de dados e SQL tanto em seu emprego em tempo integral quanto como fundador do site DatabaseStar.com, onde ensina tópicos sobre bancos de dados Oracle. Sua paixão por software e bancos de dados começou quando ele iniciou aulas de informática no ensino médio no final dos anos 1990 e só tem crescido desde então.
Saiba mais sobre este assunto
Os próximos cinco minutos de conformidade: construindo segurança de dados com foco em identidade em toda a APAC
Leis de Privacidade de Dados por Estado: Abordagens Diferentes para a Proteção da Privacidade
O Triângulo da CIA e Sua Aplicação no Mundo Real
O que é Gerenciamento de Registros Eletrônicos?
Expressões Regulares para Iniciantes: Como Começar a Descobrir Dados Sensíveis