domingo, 14 de março de 2010

Segurança em Banco de Dados Acess em Servidores Web

a estrutura de pastas para um dominio hospedado no windows é a seguinte:

- levaremos em conta o site HOSTSAGRADO.COM

c:domainshostsagrado.com

diretorio raiz

c:domainshostsagrado.comDB

diretório reservado a banco de dados

c:domainshostsagrado.comSECURE

diretório reservado a gravação configuração de pastas protegidas por senha

c:domainshostsagrado.comLOG

dirtetório com os logs de acesso ao site

c:domainshostsagrado.comwwwroot

diretório com o web site em si - pasta publica

c:domainshostsagrado.comSSL

diretório com o web SSL - pasta publica


os arquivos .mdb somente estarão seguros se estiverem dentro da pasta DB, porem não é raro encontrarmos estes arquivos em subpastas dentro da wwwroot, lembramos que os arquivos .MDB são como quaisquer outros arquivos e que portanto podem ser descarregados como arquivos comuns.

pois bem de posse desta informação, então digamos que enviassemos um arquivo .mdb para a pasta database dentro da pasta wwwroot teriamos:

c:domainshostsagrado.comwwwrootdatabaseexemplo.mdb

qualquer pessoa poderia descarregar esta base de dados, simplesmente digitando a url:

http://www.hostsagrado.com/database/exemplo.mdb

E a partir dai abrir o arquivo e ver conteudo que la esta, e o pior esta base de dados geralmente possui os usuarios e senhas para acesso ao sistema, pode ainda possuir dados cadastrais de clientes, dados de cartões de credito, etc...

Ou seja a partir de um simples descuido um invasor ja tem acesso completo ao seu site, pode por exemplo, acessar a sua area administrativa, e através dela cadastrar um produto, so que ao inves de enviar uma imagem, na realidade envia um programa que sera capaz de desfigurar seu site, enviar emails, etc, etc, etc...

fora o roubo de dados dos clientes, e pior ainda se estes dados tiverem informações de cartões de credito....

bom ja viu o tamanho do prejuizo causado por um simples e comum descuido, para resolver esta questão basta colocar todos os arquivos .mdb na pasta db, entao o caminho correto do nosso exemplo seria:

c:domainshostsagrado.comDBexemplo.mdb

como a pasta db não é publica, não há como acessar-la via http://www...., porem esta acessivel via script.

A grande maioria dos scripts em asp, possuem um rotina de configuração para que seja informado o caminho do
banco de dados, geralmente neste arquivo na linha de conexão ao banco de dados é comum encontrar o comando
server.MapPath(), que descobre automaticamente o diretorio corrente, este comando não ira funcionar, substitua-o pelo caminho de seu site, veja a seguir um exemplo de configuração da virtua store, uma loja muito comum em ASP:

linha original e errada:

StringdeConexao = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("database/virtuastore.mdb")

Devera ser sustituida por:

pasta_dados_protegido="C:domainshostsagrado.comdbvirtuastore.mdb"
StringdeConexao = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&pasta_dados_protegido&";"


BOM FINALIZANDO, SEJA QUAL FOR SUA APLICAÇÃO NUNCA COLOQUE O BANCO DE DADOS EM AREA PUBLICA,, UTILIZE SEMPRE A PASTA DB, CASO NÃO TENHA CONHECIMENTO EM ASP E PORTANTO NÃO SABE COMO ADAPTAR O SCRIPT, ENVIE UM POST PARA O FORUM, OU PROCURE FORUMS ESPECIALIZADOS, NUNCA CORRO RISCOS ESMO QUE SEJA APENAS PARA TESTAR UMA ROTINA, OU SEJA NÃO COLOQUE SEUS SITES EM RISCO...

Nenhum comentário:

Postar um comentário