segunda-feira, 16 de abril de 2012

Criptografar senhas em um script automatizado é realmente necessário?

Hoje tive uma conversa com um aluno do curso de Selenium que me fez pensar um pouco...
A pergunta era como criptografar a senha gravada pelo Selenium durante a gravação dos testes e execução do mesmo.

E eu me perguntei: pra que? rs

A pergunta é pertinente, pois há uma preocupação com a segurança dos dados dentro do script.
Vamos a alguns pontos...

Que ganho teriamos em "criptografar" a senha de dentro de um script de teste?
Obviamente o ganho seria em segurança.
Qualquer pessoal má intencionada poderia utilizar aquele usuário e senha para acessar o sistema, principalmente em produção e utilizá-lo de forma indevida. Até mesmo passar o usuário e senha para uam pessoa acessar um sistema em produção para utilização própria (leia-se para não pagar/comprar), e muitas outras ações que podem ser feitas.


Como a grande maioria dos profissionais trabalha com esta questão em automação
Na grande maioria das vezes a codificação de uma senha dentro do script não é levada em consideração porque:
  • Os servidores de testes são conhecidos e possuem acesso apenas aos colaboradores da empresa
  • Usuários específicos são criados (ou deveriam) para diversos testes
  • Mesmo em ambiente produtivo (servidor de produção) o acesso é controlado através de usuários apenas para testes especificos, onde estes usuários são desativados no sistema em produção e, obviamente, possuem uma senha mais "segura"
Pense no trabalho que dará você codificar uma senha e, no momento da execução do script, ter que decodificar a mesma para que a aplicação execute. No mínimo um desenvolvimento usando reflexão terá de ser criado. E como diria na minha terra "é muita mão de obra" (dá muito trabalho) fazer isso.

Uma possivel solução rápida se simples
A solução não exclui o fato de segurança de acesso, etc... Porém pode tornar as coisas mais simples e tranquilas e na verdade vai te ajudar a criar "melhor" os testes scripts: colocar este dado em um arquivo externo!

Obviamente tu continua tendo um acesso a senha daquela, mas não diretemente no arquivo

O que deveríamos fazer então?
O ideal, na minha visão, é:
  • Criar usuários especificamente para rodar os scripts automatizados
  • Sempre possuir um processo/automação para desativar os usuários quando não estiverem em uso, principalmente em ambiente produtivo
Bom, estas são as minhas pequenas considerações em relação a este tema.
E como vocês costumam fazer?
Essa mesma idéia de "criptografar" os dados já passou na cabela de vocês?

Abraços!

Um comentário:

  1. Bom dia, Elias!

    Meu nome é Erbett e sou de Manaus-AM. Primeiramente gostaria de dizer que o teu blog me tem sido bastante útil. Parabéns pelo trabalho e pelo profissional que és, o admiro muito.

    Eu já pensei a respeito desse problema e talvez a transformação da senha em uma cadeia de seus respectivos códigos ASCII fosse uma solução a curto prazo, pelo menos para desencorajar os menos experientes.

    Dessa forma, o script não sofreria maiores alterações (como, no caso, a manipulação de um arquivo externo).

    Não sei se o Selenium IDE possui essa função, mas a implementação dessa abordagem em uma linguagem de programação é relativamente fácil.

    Espero que tenha sido útil.

    Um abraço!

    ResponderExcluir