bollywood actresses hair loss hair rehab london contact number cheap hair extensions brazilian curly hair with closure hair extension fails human hair wigs black ponytail hairstyles 2018 sunny hair extensions uk hair extensions remy hair extensions weft koko one piece hair extensions clip hair
Chave de segurança em funções públicas
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é 2x no Cartão de Crédito. 

Veja como comprar e saiba mais sobre o material oferecido,  clicando aqui.

Open v3

 

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!


 

 


Não há comentário

Envie seu comentário: