Não exibir os parâmetros na bara de endereço quando utuilizar método get de servlet

11 respostas
C

Bom dia a todos!

Pessoa, tenho um servlet que cria uma página com um form. Até ai, tudo bem. Neste form existe um campo do tipo password. Não preciso que a informação deste campo seja criptografada quando enviada para o próximo servlet, como método get. Preciso apenas que o usário n!ão veja o que está sendo escrito ali. No meu caso o que é escrito é o conteúdo das trilhas de um cartão magnético, lido por uma leitora de cartão.
Porém, quando submeto o form para o próximo servlet, o conteúdo deste campo aparece na barra de endereços, e isso não pode acontecer!
Como nào exibir estes dados na barra de endereços ou, caso não seja possível evitar isso, como “codificar” a informação?
Não preciso de nada super-seguro, isso é um programinha com uma interface web que vai rodar na intranet. Talvez no máximo um meio de criptografia bemm simples.

alguma dica!?

Muito obrigado!

Cássio Marques

11 Respostas

F

É só usar o método POST, e verifique se essa concatenação na url não está sendo feita por alguém …

K

Opcoes:

  • Mande com POST mesmo (monte um formulariozinho e envie a informacao em um campo hidden, fazendo o submit com Javascript).

  • Crie um frameset com dois frames, um com zero de tamanho (“invisivel”) em branco e o outro com 100% do tamanho que abrira tua aplicacao. A partir dai a URL ficara sempre a mesma (blabla/frame.html).

Dependendo do teu caso, o POST eh mais recomendavel. Quanto a “criptografia”, observe que mesmo com POST as informacoes nao trafegam criptografadas (os *** nos campos “passwor” sao simplesmente uma mascara).

Marcio Kuchma

C

Mas quando eu uso POST os parâmetros simplesmente NÃO são enviados! No servlet destino, quando uso post, se eu usar um Enumeration para pegar todos os nomes dos parâmetros enviados e der um for para passar exibindo todos eles, não sai nada… Tentei buscar um por um com os ids de cada parâmetro e retorna sempre null.

Ah, não entendi o que você disse sobre a concatenação na url ser feita poralguém…

Alguma idéia?!

Muito obrigado!!!

F

então eles não estão dentro do <form method=‘post’ … >

C

Estão sim :slight_smile:

out.println("<form name=formulario action=CheckError method=get onsubmit=\"return false\" enctype=multipart/form-data>");						
			//out.println("<center><input type=\"password\" size=100 name=\"cardContents\"  maxlength=300></center>");			
			
			out.println("<center><h4>Quais trilhas este cartão possui?</h4></center>");			
			out.println("<center><input type=checkbox name=track1>Trilha 1<br></center>");
			out.println("<center><input type=checkbox name=track2>Trilha 2<br></center>");
			out.println("<center><input type=checkbox name=track3>Trilha 3<br></center>");
			
			out.println("<center><h4>Informe o número da OP</h4></center>");
			out.println("<center><input type=text size=30 name=\"opNumber\"</center><br>");
			//out.println("<center><input type=\"submit\"</center>");
			out.println("<br><center><input type=button onclick=\"encripta()\" value=Enviar></center></font>");
			out.println("<center><input type=\"hidden\" size=100 name=\"cardContents\"  maxlength=300></center>");
			out.println("</form>");
T

Aquela duvidazinha básica.
Você está tratando os dados na servlet sobrepondo o método doGet ou doPost?

C

Estou fazendo assim:

public class ExamineCardStripe extends HttpServlet {
		public void doGet(HttpServletRequest request, HttpServletResponse response)
		throws IOException, ServletException
		{
                   ...código...
                }

                public void doPost(HttpServletRequest request, HttpServletResponse response)
		throws IOException, ServletException
		{
                   ...código...
                }
}
J

Mas pérai, lá no seu exemplo está method=get.

C

ehehehe
eu sei, mas é porque eu tinha testado com post e não estava dando certo, coloquei o get, mas os parâmetros aparecem na URL. Não mudei de volta para post antes de responder o tópico. Mas eu sei que ali no método do form teria que colocar post…

Obrigado! :slight_smile:

F

o que tá acontecendo é que você tá enviando o form com enctype=multipart/form-data , vc submete tb algum arquivo pro servidor ?

C

Opa, era isso mesmo! Na verdade eu peguei uma parte de um código que estva pronto e esqueci de tirar isso :slight_smile:

Só que agora estou com outro problema!

Deu certo o post, porém eu tinha um forward dentro do método get que encaminhava a execução para outro Servlet, e parece que este forward não funciona dentro do método post…
Sabe porque?!

RequestDispatcher rd = request.getRequestDispatcher("ExamineCardStripe");
rd.forward(request, response);

Obrigado! :slight_smile:

Criado 19 de junho de 2006
Ultima resposta 19 de jun. de 2006
Respostas 11
Participantes 5