Parâmetros via browser

16 respostas
S

Olá pessoal,

Estou com um problema de segurança relacionado a passagem de parametros atraves de uma pagina JSP.

Acontece que utilizo da seguinte sintaxe no meu sistema:

http://localhost:8080/doc08/teste.jsp?id=5&posicao=98&cidade=Salvador

O problema é que como todos sabem essas informações podem ser editadas no browser e daí prejudicar o sistema como um todo. Desse modo, gostaria de saber como devo proceder para retirar essa informações do browser ou ao menos escondê-las do usuário. Já tentei por o form como GET, POST e em nenhuma das duas opções consegui esconder as informações =/

Alguém pode ajudar?

[]'s

16 Respostas

S

Alguém?

S

Só para complementar, esse link que eu citei não é passado com o click de um botão do form. Ele faz parte de uma tabela na qual cada cidade possui um link ao lado de seu nome do tipo “Editar Informações da Cidade”, ou seja, o que estou querendo dizer é que para obtê-lo eu clico no link com a seguinte sintaxe:

<a href="doc08/teste.jsp?id=5&posicao=98&cidade=Salvador">Editar Salvador</a>
<a href="doc08/teste.jsp?id=6&posicao=87&cidade=São Paulo">Editar São Paulo</a>
<a href="doc08/teste.jsp?id=7&posicao=101&cidade=Fortaleza">Editar Fortaleza</a>
<a href="doc08/teste.jsp?id=8&posicao=198&cidade=Recife">Editar Recife</a>
<a href="doc08/teste.jsp?id=9&posicao=165cidade=Florianópolis">Editar Florianópolis</a>

Acho que é isso…

Obrigado!

P

skabryanty, se você está utilizando como você colocou, hardcode num link, os parâmetros vão sempre aparecer. Te dou a sugestão de fazer isso por um botão e com metodo POST.
Se você utilizar um botão pra submeter pra página de edição esses parâmetros ficarão escondidos, a não ser que o código fonte seja visualizado.

Abraços,

N

no final das contas tanto um ou outro vai dar m**** pq o usuário por mudar os valoer pelo browser tb.

oq vc pode fazer é criar valores para substituir a combinação e utilizar eles apenas uma vez ser for utilizado pelo sistema varias vezes vc pode manter na seção.

ao invés de usar http://localhost:8080/doc08/teste.jsp?id=5&posicao=98&cidade=Salvador vc pode usar http://localhost:8080/doc08/teste.jsp?a=1029345asoer

internamente seu sistema sabe que 1029345asoer = id=5&posicao=98&cidade=Salvador

vc pode criar os seus valores ou pode fazer: http://www.cs.utsa.edu/~wagner/laws/ARSAFast.html

para colcoar os valores criptografados da interface então vc coloca o valor referente a “5;98;Salvador” e quando chegar no server vc faz o inverso e depois um split para pegar os valores.

S

Entendi nextuser!
Acho que vou optar pelos valores na session mesmo! Dai nesse caso quando for requisitar novamente em outra página utilizo o session.getAttribute()
Em projetos posteriores estudo esse lance da criptografia :slight_smile:

Obrigado!

P

Use o método POST ao inves de colocar um link normal utilize uma função em Javascript

Javascript

function envia(par1, par2, par3){
   document.forms[0].par1.value=par1;
   document.forms[0].par2.value=par2;
   document.forms[0].par2.value=par3;
   document.forms[0].action="suaUrl";
   document.forms[0].submit();
}

Chamando a função

<a href="#" onClick="envia('1','2','3');">Editar Salvador</a>
S

Pedrosa,

Rapaz, quando eu to clicando no link ele não ta redirecionando para a pagina correta… ta aparecendo o endereço da página atual acrescentado do #

P

Voce alterou o action da função com a url correta?

document.forms[0].action="doc08/teste.jsp";
S

Sim, ele não ta direcionando, fica estático na página atual e só altera o endereço do browser acrescentando o #

P

Veja algumas coisas na sua função:

Esta criada dentro das tags?

Se existe o o formulario e o method=post?

<form name="frmTeste" action="" method="post">
</form>
S

pois é! ta com essa estrutura ai… já verifiquei
estranho em!

S

Caramba! Já andei vasculhando todo o google e, de fato, isso é uma falha de segurança terrível! Tentei usar as soluções acima mas não consegui obter êxito…
Já busquei outras soluções google a fora e não encontrei nada razoavel q solucionasse isso…

que merda em =/

alguém tem alguma dica de como passar parâmetros via browser sem q essas informações sejam disponibilizadas para o usuário alterar??

Valeu!

P

Cara segue um exemplo com link, imagem e botão:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <script>
		function envia(a,b,c) {
			document.forms[0].a.value=a;
			document.forms[0].b.value=b;
			document.forms[0].c.value=c;
			alert("par a" + document.forms[0].a.value);
			alert("par b" + document.forms[0].b.value);
			alert("par c" + document.forms[0].c.value);
			document.forms[0].action="Teste2.htm";
            document.forms[0].submit();
		}


   </script>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Teste</title>
</head>
<body>
	<form  name="teste" action="Teste2.htm" method="post">
		<input type="hidden" name="a" value="">
		<input type="hidden" name="b" value="">
		<input type="hidden" name="c" value="">
		<table border="0" width="100%" align="center">
			<tr>
				<td>
					<a href="" onClick="javascript:envia('1','2','3'); return false;">Pagina 1 para Pagina 2</a>
					<img src="next.gif" onClick="envia('1','2','3');"/>
				</td>
			</tr>
			<tr>
				<td>
					<input type="button" value="envia" onClick="envia('1','2','3');">
				</td>
			</tr>
		</table>
	</form>
</body>
</html>
S

Beleza companheiro! agora funcionou!

S

valeeeeeuss mesmo! ^^

S

Pois então, usando o código acima na camada de visualização do JSP funcionou tranquilamente para as variáveis estáticas. No entanto, quando fui reproduzir o mesmo código dentro da camada de controle do MVC, na qual eu carrego uma tabela dinamicamente com os dados do BD, não funcionou.

Nesse caso, dentro da tabela, eu criei uma coluna final, com um link em cada linha referente ao encaminhamento do usuário para uma página de edição daquele determinado item da linha (“Clique para editar item 1”).

A partir daí, na página subsequente o sistema não está conseguindo obter os parâmetros da tabela para encaminhá-los à pagina de edição. Chega a entrar na página mas não exibe o conteúdo dependente dos parâmetros.

E agora? :slight_smile:

Criado 15 de dezembro de 2008
Ultima resposta 18 de dez. de 2008
Respostas 16
Participantes 4