Como posso fazer para que minhas paginas JSP ou Servlet não recuperem pelo método getParameter(), dados que foram digitados no endereco do browser.
Como não aceitar dados digitados no endereço do browser
6 Respostas
Nao entendi o problema aqui… vc poderia dar um exemplo de uma situacao onde vc nao quer que o getParameter() funcione? (sim, que ele nao funcione, pq a funcao dele eh justamente essa!)
Tb não entendi.
Por exemplo, se vc fizer um servlet apenas com o doPost, ele não aceitaria uma url digitada pelo usuário na barra do browser, pq seria enviado via GET … seria algo do tipo ??
Exemplo :
http://cd7390et224/NASApp/sibnc/Autenticacao?j_username=p993896&j_password=230499&proxTela=1
os valores :
J_username , j_password so poderia ser digitados, nunca poderia ser informado desta maneira, assim eu perco segurança.
os valores:
J_username , j_password so poderia ser digitados, nunca poderia ser informado desta maneira, assim eu perco segurança.
Entao, use POST ao inves de GET.
So corrigindo, vc nao perde NADA de seguranca se o cara digitar na URL ou num campo do form. O potencial pra ataque eh exatamente o mesmo - ele so fica mais, erhm, visivel. 
o que vale é Servlet, nele é que será implementada toda a segurança. O máximo que você pode fazer é como disse o cv, usando post ao invés de get.
Olá
-
Descarte os GETs antes de autenticar o usuário (ou sempre, mas fica estranho), em doGet(HttpServletRequest request, HttpServletResponse response) retorne página de erro se o usuário não existe ainda. Controle isto com sessions.
-
Trabalhe com o conceito de Authorization header. Se a página não contém este header o teste abaixo falha:
String aut = request.getHeader("Authorization");
if (aut == null) {
tacaEsporroNoUsuario();
} else {
pegaDadosUsuarioComBase64Decoder(); // Veja Core Servlets & JSP
}
Veja capítulo 4 em Core Servlets & JSP (4.5). Versão online:
http://pdf.coreservlets.com/
http://csajsp-chapters.corewebprogramming.com/CSAJSP-Chapter4.pdf
[]s
Luca