Chave de segurança em funções públicas
Nota importante: para ter acesso aos vídeos e arquivos exemplos deste site, adquira um dos planos apresentados abaixo. Você pode comprar em até 5x no Cartão de Crédito.
Veja como comprar e saiba mais sobre o material oferecido, clicando aqui.
Funções com escopo Public devem receber sua especial atenção, pois podem oferecer uma brecha na segurança, mesmo no caso do aplicativo estar na extensão ACCDE.
Se o invasor estiver acesso ao Painel de Navegação e chegar até a Janela Imediata do VBA é possível que tente executar tais funções, com a intenção de extrair algo.
Por exemplo: vamos supor que você tenha a função abaixo no seu aplicativo para descriptografar senha ou outros tipos de informações sigilosas.
Public Function fncDCrip(varChave) As Variant Dim i%, k%, strBuff$, strpwd$ On Error GoTo trataErro strpwd = "MNBVCXZLKJ039RTY4U6W" For i = 1 To Len(varChave) k = Asc(Mid$(varChave, i, 1)) k = k - Asc(Mid$(strpwd, i, 1)) strBuff = strBuff & Chr$(k) Next i fncDCrip = strBuff sair: Exit Function trataErro: fncDCrip = 0: Resume sair End Function
Da forma como se encontra a função acima, qualquer programador com um pouco de experiência poderá utilizar a função, que você deixou com livre acesso, para decifrar os dados criptografados que você tenha armazenado em uma tabela.
fncDcrip("®Ä§Â¬ÆÉ") :::::> avelino
Solução: Crie uma chave numérica que impeça o funcionamento da função, caso esta não seja informada corretamente. Veja a alteração da função:
Public Function fncDCrip(varChave, Optional lngChave as long =0) As Variant Dim i%, k%, strBuff$, strpwd$ On Error GoTo trataErro
'------------------------------------------------------
'Se não informar a correta chave de segurança, a função
'passará ao valor 0(zero)
'------------------------------------------------------
if lngChave <> 131520 then
fncDCrip = 0
Exit Function
end if
strpwd = "MNBVCXZLKJ039RTY4U6W" For i = 1 To Len(varChave) k = Asc(Mid$(varChave, i, 1)) k = k - Asc(Mid$(strpwd, i, 1)) strBuff = strBuff & Chr$(k) Next i fncDCrip = strBuff sair: Exit Function trataErro: fncDCrip = 0: Resume sair End Function
O programador ao executar a função sem a chave ou com a chave incorreta receberá como resultado o valor 0.
fncDcrip("®Ä§Â¬ÆÉ") :::::> 0
fncDcrip("®Ä§Â¬ÆÉ",131520) :::::> avelino
Bom estudo!
Os dez artigos mais visitados
MontaRibbons v.7.0 - Assistente completo para criar ribbons no Access
Vídeo - Controle personalizado de Acesso de Usuários
Vídeo - Aprenda sobre filtragens
Vídeo - Segurança máxima, usando o OPEN
Uma ajuda para quem está começando um negócio ou um projeto
Integrando o Access com Servidor MySQL - Introdução
Desabilitando a faixa(ribbon) superior do Access
Vídeo - Programação de relatórios - Parte 1
Como carregar o seu menu sem que ele vá para lista de suplementos
Adquira o kit UsandoAccess e aprenda em alta velocidade
Não há comentário |