Galera,
nossa aplicação estava com um furo grande de segurança, fiz uma correção pra barrar o problema, mas o usuário malicioso ainda consegue ao tentar, entendam o que algum usuário pilantra estava fazendo(a mesma pessoa conseguiu 2 logins e senhas)
- Meliante com o Usuario 1 com perfil X, loga na aplicação e consulta pessoas do seu departamento e deixa a lista de resultado na tela(browser aba 1).
No mesmo browser, numa outra aba:
-
Meliante com o Usuario 2 com perfil Y, somente loga na aplicação(browser aba 2).
-
Meliante volta na aba 1 com a listagem de usuários na tela (consultada com o usuário 1), porém por trás quem está na sessão agora é o usuário 2 que logou por último, aí o pilantra seleciona vários usuários manda deletar, e o usuário pumba deletou todos estando logado com um cara que não tinha permissão deletar.
No nosso sistema, o problema que ficou registrado quem executou a remoção foi o usuário 2, mas ele nem deveria ter conseguido consultar tais usuários(e na verdade ele não consultou, ele apenas usou a tela consultada pelo usuário 1)…(daqui pra frente gerou vários problemas de negócios na aplicação… que não vem ao caso).
O que fizemos foi fazer uma segunda validação e reconferir se quem estava deletando tinha permissão.
Como vocês fazem na aplicação de vocês pra evitar isso?
Usa uma pré e pós validação, igual está meu sistema hoje?
Fazem algo pra não deixar esse tipo de compartilhamento de sessão com mesmo browser e abas diferentes?
O que vocês tem feito?