Segurança máxima, usando o OPEN
Dois focos de segurança você deve ter em mente: um é a segurança dos dados e o outro é a segurança do aplicativo.
A segurança do aplicativo é relativamente simples de se resolver: basta convertê-lo para a extensão ACCDE, que o oponente não terá acesso aos códigos desenvolvidos por você.
A questão da segurança dos dados é que torna-se uma dor de cabeça.
Até a versão do Access 2003, a senha simples de acesso ao aplicativo é facilmente descoberta por programas de terceiros, que você acha facilmente aí pela pesquisa do Google. Portanto, não servindo como proteção eficaz.
Já na versão do Access 2007/2010 , esta senha simples é considerada extremamente segura, portanto um ponto muito forte a nosso favor. Mas, apesar de sua eficácia, existem falhas no seu emprego. Uma delas é o fato de você ter que passar a senha ao usuário para ele ter acesso ao aplicativo – Ora, se você tem que revelar a senha ao usuário , abre-se aí uma brecha na segurança.
O que se costuma fazer então, na prática, é dividir o banco de dados em dois– um contendo apenas as tabelas, chamado de back-end e um outro contendo todos os objetos restantes, como formulários e relatórios, e que é chamado de front-end. Ligamos então o front-end ao back-end através de programação e/ou através do que chamamos de vinculação, tornando os dois bancos como se fossem um único aplicativo. Esta também é a maneira mais empregada para o uso em REDE.
Podemos então criar uma senha simples para o back-end (tabelas), sem contudo precisar ser revelada ao usuário, já que ele estará acessando o aplicativo apenas pelo front-end.
Quando você estiver configurando a ligação entre os dois bancos, seja ela por programação ou por vinculação, terá que informar a senha do back-end no processo. Quando se faz isso por programação, não há risco algum desta senha ser descoberta, desde que você transforme seu aplicativo (front-end) para a extensão ACCDE (códigos protegidos). Porém, quando se faz a ligação por vinculação, abre-se uma brecha enorme na segurança desta senha simples do back-end (você verá como, no vídeo apresentado).
Muitos programadores, cientes deste fato, preferem optar em fazer a conexão do back-end por programação, mas isso traz uma enorme prejuízo no quesito tempo, pois haverá um acréscimo substancial de programação. Eu, particularmente, não uso deste artifício em projetos grandes, pois preciso muito otimizar meu tempo. Um projeto que preferi configurar por programação, pois não tinha muitas tabelas, foi o MontaRibbons, que eu ofereço aqui no site.
Então qual é o problema na vinculação ?
O problema é que as tabelas autenticadas automaticamente pela vinculação estarão disponíveis livremente pelo seu front-end. Se nada for feito para impedir o acesso aos vínculos criados no front-end , o oponente terá acesso livre, não só aos dados, como também irá conseguir obter a senha do seu back-end que está gravada (sem qualquer proteção) nos vínculos – um absurdo!
O que fazer então?
A situação poderá ser amenizada, criando-se uma senha simples também para o front-end. Mas cairemos na mesma situação inicial, de que esta senha de acesso deverá ser revelada para o usuário. Pelo menos estaremos aí reduzindo o risco a zero, caso o oponente furte o banco sem a senha do usuário.
Um outro entrave que acontece com esta senha simples no front-end é o fato de termos que criar para maioria dos aplicativos, uma programação de segurança a nível de usuário, que força a gente a abrir um formulário na inicialização, solicitando nome e senha de usuário. Ora, então o usuário terá que autenticar duas senhas para entrar no front-end: uma de acesso global ao programa e a outra de acesso restrito ao usuário. Isso acaba não sendo funcional! Adivinhe só qual das senhas eu costumava descartar?
Não conformado com esta situação de risco , consegui elaborar um banco auxiliar, que chamo de OPEN e que faz automaticamente essa autenticação da senha simples para o front-end.
Matei assim dois coelhos: não revelar as senhas do back-end e front-end para o usuário e não conflitar com a abertura do formulário de senha, a nível de usuário.
O OPEN e a extensão ACCDR
ACCDR é uma nova extensão de arquivo que permite a abertura de um banco de dados em modo de tempo de execução. Ao fazer a alteração da extensão do arquivo de ACCDB para ACCDR, você estará criando uma versão "bloqueada".
O modo de tempo de execução é um modo operacional que desativa o Painel de navegação, a Faixa de opções, o Modo de design, o Modo de layout e a Ajuda.
O OPEN foi configurado para rodar o front-end apenas na extensão ACCDR, proporcionando um nível de segurança, sem qualquer programação adicional, que necessitaria ser feita se tivesse em outra extensão. Assista o vídeo e você entenderá perfeitamente como isso funciona
Consegui gerar um nível de segurança tão bom com o OPEN, que estou utilizando em alguns dos meus clientes, os bancos em ACCDB (facilitando meus reparos no local) convertidos em ACCDR.
Neste vídeo você verá:
Como dividir seu banco de dados em back-end e
front-end.
Como configurar senha simples.
Como capturar a senha do back-end pelo front-end sem proteção.
Como se proteger de keyloggers
Como configurar o OPEN para o seu projeto.
Como gerar senha para o próprio OPEN, se não utilizar senha a nível
de usuário.
O arquivo
Baixe o arquivo Open.zip abaixo, que contém dois aplicativos: O Open.accdr e o SenhaOpen.accdr
Como EXIBIR a vídeo-aula em tela cheia?
1. clique na seta executar da tela abaixo
para iniciar a exibição do vídeo;
2. dê dois cliques rápidos na tela, quando o vídeo começar a ser
exibido.
Artigos Relacionados
O MDW (segurança em nível de usuário) morreu
Como configurar seu Banco de Dados com a extensão ACCDR
Vídeo - Criando ribbons (parte 1) - MontaRibbons
Vídeo - Criando Ribbons (parte 2) - MontaRibbons
|
41 comentários MSampaio 25/11/2009 14:12:14 Avelino, mais uma vez parabens. Seu site esta se tornando uma verdadeira escola de access, quem não acessa esta perdendo e muito. Muito obrigado por mais esta grande aula. manoel alipio b costa 26/11/2009 01:34:24 Avelino vc é o cara mesmo, quanto ficaria para vc me mandar as video aulas + o programa ribbons para o cep 76820-624 em porto velho -rondonia( me manda um e-mail com o valor para ( alipio@ronsegseguros.com.br) deixa eu te perguntar , vc ja fez algum aplicativo para corretora de seguros? Maurício Mendes 28/11/2009 17:05:48 Adorei essa aula, ainda não tinha visto nada assim. vc é o maximo. Avelino Sampaio 30/11/2009 11:23:53 Manoel, respondi pelo seu email Marcelo e Maurício, fico muito feliz com os comentários. Anote aí no caderninho de vocês. 2010 será o ano deste site, com muito mais vídeo aulas e exemplos. Sucesso Vítor José de Paula 30/11/2009 16:38:40 Prezado Avelino; Primeiramente agradecer por dividir seu conhecimento conosco. Segundo parabenizá-lo por desenvolver ferramentas muito bem elaboradas, criativas que contribui em muito com os desenvolvedores. Terceiro dizer que foi uma surpresa gratificante algumas vulnerabilidades apresentadas por você que vai nos ajudar muito a proteger nossos softwares e as informações dos clientes. Me mande um email depois com orçamento de quanto cobraria por um cd contendo tudo sobre ribons com alguns exemplos práticos. Grande abraço; que Deus lhe retribua com muita saúde e sucesso. Nikolas 1/1/2010 17:43:44 Realmente, todas as dicas e video aulas são de grande ajuda para o desenvolvimento de sistemas em access, desenvolvo sistemas em access há muitos anos e realmente vc esta de parabéns Avelino. Plinio Marcos 23/1/2010 10:36:59 Grande Avelino Seus tutoriais e vídeo-aulas estão o máximo, porém esta idéia do Open foi magnífica. Parabéns mesmo pela grandiosidade dos aplicativos e dos artigos. Avelino Sampaio 26/1/2010 08:00:59 Vitor, Nikolas e Plinio É um prazer ver vocês por aqui e obrigado pela força. Sucesso Rejane 31/1/2010 01:48:49 Gostaria de trocar email contigo. Tenho muitas duvidas de como transformar um programa do access em multiusuário. Favor fazer contato mariaberger@ig.com.br José Mendes 10/3/2010 07:49:53 Olá bom dia Avelino, Tentei implementar exemplo mas não consegui. Corri o setup do open Corri como run o open e ele pede a senha. Manoel Santos 21/4/2010 12:54:15 Olá Avelino, parabéns pelo site, está ótimo! Tentei executar o exemplo do setup open para o arquivo maestro e ele pede senha. Detalhe: Ao abrir o arquivo zipado "tuto 9" ele gera 2 files: maestro.accdb e maestro_be.accdb. Pergunta: Eu devo converter um desses arquivos para "accdr" antes de rodar o setup do open? Grato! Avelino Sampaio 21/4/2010 18:33:23 Manoel Santos, Crie uma senha para o maestro.accdb Passe o maestro.accdb para maestro.accdr maestro_be.accdb e o arquivo que comtém as tabelas (back-end). sua senha de acesso: a1234 Sucesso Gilberto 29/4/2010 22:53:15 ?Uma perguntinha, desenvolvi meu sistema em access 2007 com sp2 e estou usando o open, que achei exelente (Parabens). Esse sistema rodara com o Access runtime somente? o Access Runtime ja tem a atualização SP2? Avelino Sampaio 30/4/2010 04:53:12 Gilberto, O Access runtime já tem o Sp2. Copie e cole no seu navegador o link abaixo para realizar o download. http://www.microsoft.com/downloads/details.aspx?FamilyID=6f4edeed-d83f-4c31-ae67-458ae365d420&DisplayLang=pt-br O Open funciona no Access completo e no Access runtime Sucesso Gilberto 30/4/2010 11:28:53 Obrigado pelo retorno Avelino, é que eu estava preocupado em disponibilizar meu sistema e o cliente não ter o Office 2007 instalado, sendo assim vou mandar o inno fazer a instalação do runtime. Muito obrigado mesmo e muito sucesso para vc. Avelino Sampaio 30/4/2010 14:43:39 Gilberto, Isso não tira vc de: testar , testar e testar Não esqueça que o runtime tem também a questão da macro de segurança. No inno vc tem que criar o local seguro, configurado no registro do Windows. O Access 2010 também já tem o Runtime. Simplesmente gigantesco. Sucesso Luciano 5/5/2010 17:07:59 Avelino, Parabéns pelo excelente vídeo. Há a possibilidade de usar o Open em um BD na versão 2003? Grato. Avelino Sampaio 5/5/2010 18:33:47 Luciano, não, porque a senha simples do Access 2003 é fácil de ser descoberta. Sucesso JACKSON 14/5/2010 18:55:37 Legal...ótimo site Gilberto 17/5/2010 16:00:37 Boa tarde Avelino. Estou usando o Open e gostei d+, mas estou com uma duvida. Eu uso uma senha com 8 caracteres e tentei adicionar uma senha com 15 caracteres mas ao abrir o access diz que a senha esta incorreta, mas eu abrindo o db direto e colocando a senha não tenho problemas. O open tem limite de tamanho de senha? Um grande abraço!! Avelino Sampaio 18/5/2010 06:01:43 Jackson. obrigado pelo seu apoio. Gilberto, De fato existe uma limitação de 11 caracteres. Na próxima versão irei corrigir este bug. Grato pela sua colaboração. Gilberto 25/5/2010 16:33:44 Ok, obrigado pelo retorno Avelino, e quando atualizar o open nos avise ok? Abs Moises 26/5/2010 03:10:22 Ola Avelino! Tudo bem? Apesar de achar suas instruções excelentes, não consegui configurar o Open com meu projeto de banco de dados! Se puder me enviar mais explicações fico muito grato. Abração Avelino Sampaio 26/5/2010 15:26:35 Moises, Me passe , pelo link contato, uma explicação mais detalhada, para eu poder te ajudar. no aguardo paulo gesse 10/6/2010 22:19:04 Quero abrir um banco de dados partindo de outro, usando a função Createobject, mas não funcionou no tal Runtime. Você sabe qual a extensão para run-time? No run-time gera um erro porque ele não reconhece . Funciona bem na máquina com Access. Isto se aplica a uma grande empresa com windows 2007 instalado, sem possiblilidade de instalar versões novas, como SP2. VEJA MINHA INSTRUÇÁO: Dim objAccess As Object Set objAccess = CreateObject("Access.Application") With objAccess .Visible = True .OpenCurrentDatabase "C:\\PLANILHA TESTE.accdb", False, "MINHASENHA" .DoCmd.OpenForm "abertura" .Forms!abertura!USUÁRIO = "paulo" End With Avelino Sampaio 11/6/2010 06:11:07 Paulo, No runtime ele realmente não vai funcionar. Acesse o endereço abaixo e leia o tópico até o final. Pode te ajudar numa solução. http://www.expertaccess.com.br/forumnew/forum_posts.asp?TID=21421&KW=sendkeys&PN=1 Sucesso Gilberto 14/6/2010 14:15:18 Grande Avelino, estou com uma dúvida, se vc puder me ajudar, lhe agradeço muito. Estou usando o Open, ele abre o front end com senha, mas e se eu colocar senha no back end ele abre tambem? Se não, como abro o be com senha, ja que minhas tabelas estão com ligação por vinculação? grande abraço. Avelino Sampaio 15/6/2010 04:43:09 Gilberto, O Open só serve para abrir o front-end. O back-end é gerenciado pelo próprio front-end. Tem um artigo no site que trata da questão de revinculação (com ou sem senha), se for este o caso. Pelo link "contato" me passe mais detalhes, pois posso não ter entendido a sua dúvida. Sucesso Gilberto 15/6/2010 08:13:32 É isso mesmo Avelino, acho que resolvi pelo seu arquivo de revinculação com senha. Mas por duvida, como abrir o back end com senha, sem usar a revinculação de tabelas? Grande abraço, e tudo de bom para vc. Eder 22/6/2010 14:59:42 Avelino parabens realmente você superou tudo quanto ja vi em instrução em access. Tenho varios aplicativos em access mas tenho muitas duvidas; 1º Como faço para abrir meu aplicativo sem aparecer a janela do access. 2º Como posso colocar o icone do meu aplicativo no menu iniciar do windows. Valeu Avelino Sampaio 23/6/2010 06:09:42 Eder, 1º Isso é feito através de API. Procure no google com a frase "apiShowWindow access 2007" que irá encontrar o código desejado. Nunca usei. 2º Procure no google pela palavra "CreateShortcut" ou acesse o link abaixo http://comunidade.itlab.com.br/eve/forums/a/tpc/f/364609431/m/871101796?r=871101796#871101796 Sucesso Eder 24/6/2010 12:16:40 Avelino muito obrigado, realmente estamos muito feliz não apenas pelo seu site e as intruções contidas nele mas também pelas respostas q vc tem dado a todos aqui neste site. Grato sucesso. Eder 24/6/2010 12:27:09 Avelino estou com um probleminha aqui não consigo entrar no setup do open, quando mando o atalho para a area de trabalho e vou alterar o nome do aquivo para entrar no setup o windows não aceita o meu windows é o xp. Grato Avelino Sampaio 25/6/2010 06:39:34 Eder, qual é a mensagem que o windows fornece? Você está colocando o X(chamada de macro) na linha de comando? exemplo: ... /X setup No aguardo Sandrina 25/6/2010 08:21:51 Boa tarde Sr. Avelino, uma dúvida: é possível que o open não funcione com o Windows 7? Porque penso estar a fazer tudo bem, mas continua a pedir-me a password. Muito obrigada Eder 25/6/2010 10:24:40 Aveline muito obrigado pela resposta mas ainda esta dendo um erro gostaria de estar mandando para vc um programa de exemplo onde eu uso o arquivo de tabelas vinculadas vc teria um email onde eu posso estar me comunicando com vc. o meu é hermomsolucoes@hotmail.com Avelino Sampaio 26/6/2010 14:18:19 Eder, Já te passei um email Sandrina, Clique no link "contato" e me passe mais detalhes que eu te responderei pelo email. Eder 30/6/2010 18:04:20 Avelino muito agradecido pela resposta, mas ocorreu um problema aq qnão chegou o email se possivel me manda novamente estou no aguardo grato. Eder 7/7/2010 19:24:41 Avelino Boa noite gostaria de saber se vc conseguiu verificar meu email com os anexos. Grato. Marcos Dias 27/7/2010 22:24:39 Precisamos de um Curso Completo de Access 2007/2010 de sua autoria. Marcio de Lima 29/7/2010 15:48:00 Avelino, faço todos os passos do video, pois na hora que clico no front-end para q ele me dê a opção de colocar a senha do back-end na linha de comando, apenas apare senha errada e não aparece a áera para eu depurar e colocar o password do back-end, sabe pq?? ou tem outro caminho para colocar a senha do back-end? |
