Autenticação Java Web | Falha de Segurança
16/06/2021
0
Contexto: Estou construindo um CRUD em Java Web para estudar e adquirir conhecimento.
Não estou usando nenhum Framework, somente JSTL para ter um código mais elegante nas JSPs.
Eu implementei recentemente a autenticação do sistema usando Filter e HttpSession. E implementei também o botão ‘sair’ que chama uma ação no meu sistema que invalida a sessão e depois redireciona para a página de login.jsp.
Problema: Mesmo invalidando a sessão e barrando as requisições com Filtros, se eu clicar em ‘Voltar’ no navegador, eu acesso o meu sistema na última página que eu acessei antes de clicar em ‘sair’.
Eu não consigo fazer nada lá dentro do sistema após 'voltar'. Pois, qualquer ação é barrada pelo meu Filtro, que checka se o usuário está logado ou não. Porém, eu gostaria que ao tentar voltar a página, o navegador redirecionasse sempre para a página de login.
Estou usando o Tomcat, na versão 9.
O que já tentei: Já tentei usar forward e redirect. O problema permanece em ambos os casos. Atualmente meu bloco de código de Logout está assim:
Alguém já passou por isso? Poderiam dar uma sugestão?
Não estou usando nenhum Framework, somente JSTL para ter um código mais elegante nas JSPs.
Eu implementei recentemente a autenticação do sistema usando Filter e HttpSession. E implementei também o botão ‘sair’ que chama uma ação no meu sistema que invalida a sessão
session.invalidate();
Problema: Mesmo invalidando a sessão e barrando as requisições com Filtros, se eu clicar em ‘Voltar’ no navegador, eu acesso o meu sistema na última página que eu acessei antes de clicar em ‘sair’.
Eu não consigo fazer nada lá dentro do sistema após 'voltar'. Pois, qualquer ação é barrada pelo meu Filtro, que checka se o usuário está logado ou não. Porém, eu gostaria que ao tentar voltar a página, o navegador redirecionasse sempre para a página de login.
Estou usando o Tomcat, na versão 9.
O que já tentei: Já tentei usar forward e redirect. O problema permanece em ambos os casos. Atualmente meu bloco de código de Logout está assim:
req.getSession().invalidate(); resp.setHeader("Cache-Control","no-cache"); resp.setHeader("Cache-Control","no-store"); resp.setHeader("Pragma", "no-cache"); // HTTP 1.0. resp.setHeader("Expires", "0"); // Proxies. resp.sendRedirect(typeAction[1]);
Alguém já passou por isso? Poderiam dar uma sugestão?
Cleverson Lira
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)