Ferramenta
utilizada: Visual Studio.NET 2008 Linguagem:
C#.NET Framework: 3.5
.NET Funciona em
qualquer versão do framework: SIM |
Referência: 1.0
Olá pessoal, o objetivo desse pequeno
artigo é mostrar como é importante as informações que existem junto ao arquivo
de configuração chamado web.config do seu sistema.
Nos softwares que desenvolvemos junto a ferramenta Visual Studio.NET tem nos ajudado a ser mais informatizado a cada dia, porém precisamos oferecer aos nossos clientes ou ao nosso próprio software, a segurança devida.
Segurança no software, quanto nos arquivos que existem dentro do servidor, pense comigo: “Imagine que no seu software possui uma segurança legal, criptografia ao entrar com usuário e senha, HTTPS, SSL, Contra Scriptled e muito mais. Só que, se um hacker, cracker ou lammer entrar em seu servidor, ou seja, invadir o servidor onde hospeda seu site/sistema, acesso aos seus arquivos será transparente, inclusive o arquivo de configuração. Automaticamente, o usuário mal intencionado poderá acessar o seu banco de dados, com usuário e senha”.
Concorda comigo que isso é muito
perigoso? Mesmo que o usuário tenha apenas leitura no banco de dados, poderá
ver os seus dados e dados de seus clientes. Para resolver este problema, acabei
configurando e criptografando a conexão com o banco de dados dentro do web.config.
Mesmo que alguém entre no servidor e no arquivo de configuração, não conseguirá
pegar as informações.
No momento da conexão, já no código
fonte do programa; eu retiro a criptografia online, ou seja, sem mudar o
arquivo .cofing; conecto e faço o que for necessário no banco e com segurança.
Caso a sua conexão esteja em SSL ou
HTTPS, melhor ainda.
<add key="ConnectionString" value="RGF0YSBTb3VyY2U9MjA3LjI232FzcG5ldGk7VXNlciBJRD1hc3BuZXRpO=="/> |
Referência: 1.1
Note que o valor
da minha conexão na referência 1.1 é toda misturada; letras, números e
comandos.
É
lógico que fiz um programa que criptografa os dados e descriptografa, isso é importante,
pois caso necessite alterar a conexão, basta alterar e criptografar novamente.
Fique atento em relação a isso, a
segurança de seus dados no banco de dados é importantíssimo. Ainda mais que, não
temos controle sobre quem acesso o servidor que estamos hospedando nosso site
ou sistema.
Antes de abrir a conexão com o banco para fazer uma pesquisa eu descriptografo os dados online, ou seja, não mudo o arquivo de configuração; é dinâmico a alteração dos dados.
Para pegar a conexão basta fazer:
System.Configuration.ConfigurationManager.AppSettings[“ConnectionString”] |
Referência: 1.2
Bom, espero ter
ajudado e despertado você para algo importante.
Qualquer dúvida,
favor entrar em contato.
Mauricio Junior