Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Java => Mensaje iniciado por: Debci en 21 Marzo 2010, 15:46 PM

Título: Duda variables JSP
Publicado por: Debci en 21 Marzo 2010, 15:46 PM
Hola a todos, estoy haciendome una web usando el JSP, y he encontrado que a diferencia de mi querido PHP no puedo modificar variables a través de la url al estilo:
index.jsp?secion=1

Simplemente no cambia nada, os muestro el codigo:

Código (html4strict) [Seleccionar]
<html>

<head><title>Prueba JSP</title></head>

<body>
<%! public int secion = 0;%>
<%
out.println("Bienvenido a mi web<br/>");

out.println("<b>Pagina de ejemplo JSP</b>");
out.println("<br/>");
switch(secion)
{
case 0:
out.println("Has cojido la uno!");
break;
case 1:
out.println("Has cojido la dos!");
break;
}

%>
<br/>
Fecha actual: <%= new java.util.Date() %>



</body>

</html>


Tan moderno que es jsp y mira que no se podrá dividir en modulos xD

Saludos
Título: Re: Duda variables JSP
Publicado por: Shell Root en 21 Marzo 2010, 21:50 PM
xD, aun sigo sin entender. What The Fuck!, que quieres decir con:
Cita de: ..::| D3Bć1 |::. en 21 Marzo 2010, 15:46 PM... no puedo modificar variables a través de la url al estilo:
index.jsp?secion=1

Supongo que lo que quieres, es recolectar la variable secion, y dependiendo del valor, os muestre un mensaje:
Cita de: ..::| D3Bć1 |::. en 21 Marzo 2010, 15:46 PM
Código (html4strict) [Seleccionar]
switch(secion)
{
case 0:
out.println("Has cojido la uno!");
break;
case 1:
out.println("Has cojido la dos!");
break;
}
Título: Re: Duda variables JSP
Publicado por: Debci en 21 Marzo 2010, 22:50 PM
Cita de: Alex@ShellRoot en 21 Marzo 2010, 21:50 PM
xD, aun sigo sin entender. What The Fuck!, que quieres decir con:
Cita de: ..::| D3Bć1 |::. en 21 Marzo 2010, 15:46 PM... no puedo modificar variables a través de la url al estilo:
index.jsp?secion=1

Supongo que lo que quieres, es recolectar la variable secion, y dependiendo del valor, os muestre un mensaje:
Cita de: ..::| D3Bć1 |::. en 21 Marzo 2010, 15:46 PM
Código (html4strict) [Seleccionar]
switch(secion)
{
case 0:
out.println("Has cojido la uno!");
break;
case 1:
out.println("Has cojido la dos!");
break;
}
si pero quiero recolectarla desde la url, nod esde ningun form.

Saludos
Título: Re: Duda variables JSP
Publicado por: -Ramc- en 22 Marzo 2010, 02:50 AM
Aunque en php se pueda, no es seguro hacerlo, por otro lado utiliza el objeto request para obtener el valor de la variable:

pagina.jsp?dato=1

String datoUno = request.getParameter("dato");

Pruebalo y me dices.
Título: Re: Duda variables JSP
Publicado por: Debci en 22 Marzo 2010, 18:05 PM
Cita de: -Ramc- en 22 Marzo 2010, 02:50 AM
Aunque en php se pueda, no es seguro hacerlo, por otro lado utiliza el objeto request para obtener el valor de la variable:

pagina.jsp?dato=1

String datoUno = request.getParameter("dato");

Pruebalo y me dices.
y de donde se supone que lo debo recojer?
Hacer eso es algo tribial, almenos desde mi punto de vista, quiero cambiar el valor de la variable desde la url...


Saludos
Título: Re: Duda variables JSP
Publicado por: admin947 en 18 Junio 2010, 01:38 AM
Directamente el parámetro pasado por la URL no puede sobreescribir el valor de la variable (eso sería una catástrofe para la seguridad).
Para conseguir lo que quieres tienes que hacer algo como:

url = pagina.jsp?p_section=1


String p_section = request.getParameter("p_section");
public int section = Integer.valueOf(p_section);

switch(section)
{
  case 0:
      out.println("Has cogido la uno!");
      break;
  case 1:
       out.println("Has cogido la dos!");
       break;
}


Ten cuidado con "Integer.valueOf()" porque puede lanzarte una excepción si alguien pone una cadena no convertible a Integer.
Sí, es lo que tiene Java respecto a PHP, hay que hacer conversiones explícitas entre tipos.
Título: Re: Duda variables JSP
Publicado por: Debci en 18 Junio 2010, 19:42 PM
Cita de: admin947 en 18 Junio 2010, 01:38 AM
Directamente el parámetro pasado por la URL no puede sobreescribir el valor de la variable (eso sería una catástrofe para la seguridad).
Para conseguir lo que quieres tienes que hacer algo como:

url = pagina.jsp?p_section=1


String p_section = request.getParameter("p_section");
public int section = Integer.valueOf(p_section);

switch(section)
{
 case 0:
     out.println("Has cogido la uno!");
     break;
 case 1:
      out.println("Has cogido la dos!");
      break;
}


Ten cuidado con "Integer.valueOf()" porque puede lanzarte una excepción si alguien pone una cadena no convertible a Integer.
Sí, es lo que tiene Java respecto a PHP, hay que hacer conversiones explícitas entre tipos.
Pero ese mismo handicap puede servirme de sistema de seguridad, pues que yo sepa un XSS no solo consta de valores Integer.
PD: Como esta definido el objeto request?
Saludos
Título: Re: Duda variables JSP
Publicado por: admin947 en 19 Junio 2010, 04:14 AM
Cita de: ..::| D3Bć1 |::. en 18 Junio 2010, 19:42 PM
PD: Como esta definido el objeto request?

Podríamos ayudarte mejor si concretases más tus preguntas...

Aquí tienes la especificación del HttpServletRequest:
http://java.sun.com/products/servlet/2.1/api/javax.servlet.http.HttpServletRequest.html

Si con "definido" te refieres al cómo se declara: request se trata de una variable implícita en la petición hecha por el cliente al servidor, así que simplemente "existe".
Título: Re: Duda variables JSP
Publicado por: Debci en 19 Junio 2010, 10:31 AM
Cita de: admin947 en 19 Junio 2010, 04:14 AM
Cita de: ..::| D3Bć1 |::. en 18 Junio 2010, 19:42 PM
PD: Como esta definido el objeto request?

Podríamos ayudarte mejor si concretases más tus preguntas...

Aquí tienes la especificación del HttpServletRequest:
http://java.sun.com/products/servlet/2.1/api/javax.servlet.http.HttpServletRequest.html

Si con "definido" te refieres al cómo se declara: request se trata de una variable implícita en la petición hecha por el cliente al servidor, así que simplemente "existe".
Vale, siento es dudilla tan deslizada, no sabia si en alguna parte de tu codigo habias omitido la declaracion de dicho objeto.

Saludos