Estou trabalhando num sistema para ser armazenado na internet -servidor dedicado na web(só trabalhei até hoje em sistemas para intranet). É apresentada um tela onde o usuário envia seu login e sua senha (input type = password…). Após o usuário ser autenticado é retornado o menu do sistema. Minha dúvida é: existe alguma falha de segurança nesse processo? É necessário eu fazer alguma incrementação de segurança? Há algum bug nisso?
a) Senhas digitadas são sujeitas ao famoso ataque de “keylogging”.
Se o acesso ao seu sistema não precisa se preocupar com esse tipo de coisas (não é acesso a conta de banco), pode usar senhas digitadas mesmo. (Você vê que todo mundo usa, exceto os bancos).
b) Você deve garantir que se o usuário puser qualquer URL ele seja redirecionado para a tela de login se ele não estiver logado.
Isso pode ser checado, se você tiver um sistema rodando em um J2EE web container qualquer (como o Tomcat), usando form-based login.
É que se o usuário não estiver logado (não tiver o cookie gerado pelo web container), ele é redirecionado para a tela de login nesse caso.
c) Na Internet use https (SSL), pelo menos para a página de login - isso é feito pelo Yahoo Mail, por exemplo. Senão a senha vai passear “em claro”.
d) Você deve ter visto no Yahoo Mail que ele calcula um MD5 da senha e de um ID de sessão, isso pode ser feito se você não puder usar SSL por algum motivo. O Javascript que calcula o MD5 você pode pegar do próprio Yahoo Mail.