Foros del Web » Programando para Internet » Jquery »

vulnerabilidad XSS con jquery

Estas en el tema de vulnerabilidad XSS con jquery en el foro de Jquery en Foros del Web. Hola a todos. He dudado bastante sobre donde seria correcto escribir este post asi que si estoy en el lugar incorrecto, pido disculpas... Estoy intentando ...
  #1 (permalink)  
Antiguo 01/08/2011, 16:06
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 14 años, 4 meses
Puntos: 11
vulnerabilidad XSS con jquery

Hola a todos.

He dudado bastante sobre donde seria correcto escribir este post asi que si estoy en el lugar incorrecto, pido disculpas...


Estoy intentando incorporar cierto nivel de seguridad a una pagina. En ella, trabajo con PHP y las consultas al servidor las hago utilizando AJAX (a traves de jquery).

Concretamente estoy intentando poner a prueba el codigo contra una inyeccion del tipo XSS. Aunque creo haber entendido bastante bien este asunto del XSS (pues no es complejo entender el funcionamiento del tipico alert() y demas), no he conseguido romper la seguridad de dicho codigo. Me gustaria saber si podria haber una vulnerabilidad de este tipo (XSS) en él, ya que aunque yo lo veo 'imposible', por la cantidad de maneras en las que he visto que este tipo de vulnerabilidad se puede hacer, me hace sentirme bastante inseguro al respecto ( y dicho sea de paso, hablando claro no tengo NPI de estos asuntos).

El codigo es de lo mas sencillo:

Parte1: donde se encuentra el input (y el div de respuesta).
Código HTML:
Ver original
  1. <html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es">
  2. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  3. <script src="jquery-1.4.2.min.js" type="text/javascript"></script>
  4. <script src="prueba.js" type="text/javascript"></script>
  5. </head>
  6.  
  7. Nombre: <input type="text" id="nombre"/>
  8. <input type="button" id="chequeo" value="chequear"/>
  9.  
  10. <br/>
  11. <div id="resultado"></div>
  12. </body>
  13. </html>

parte2:archivo prueba.js
Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.  
  3. $("#chequeo").click(function(){
  4. var valor = $("#nombre").val();
  5.  
  6. $.ajax({
  7.     contentType: "application/x-www-form-urlencoded",
  8.     type: "POST",
  9.     url: "prueba.php",
  10.     data: "valor="+valor,
  11.     success: function(datos){
  12.         $("#resultado").html(datos);
  13.     }
  14. });
  15. });
  16. });

parte3: consulta
Código PHP:
Ver original
  1. <?php
  2. $conexion = mysql_connect('localhost','root');
  3. mysql_select_db('BD',$conexion);
  4.  
  5. $nmb = strip_tags(mysql_real_escape_string($_POST['valor']));
  6.  
  7. $consulta = mysql_query("SELECT apellido FROM principal WHERE nombre = '$nmb'",$conexion);
  8.  
  9. if($nombre = mysql_fetch_array($consulta))
  10.     {echo 'El apellido de ese usuario es: '.$nombre['apellido'];}
  11. else
  12.     {echo 'No hay ningún usuario con ese nombre.';}
  13. ?>

Si alguien viese alguna manera de inyectar js o.....lo q sea, le estaria muy agradecido (si me la dice )

1 saludo a todos y muchas gracias!
  #2 (permalink)  
Antiguo 04/08/2011, 09:40
 
Fecha de Ingreso: agosto-2011
Ubicación: Venezuela
Mensajes: 108
Antigüedad: 13 años, 3 meses
Puntos: 5
Respuesta: vulnerabilidad XSS con jquery

Hola no le veo nada....pero si te recomendaria que la variable $nmb tambien la pases por el htmlentities(); ya que si ingresan algun codigo malicioso a tu bd el htmlentities los pone en sus entidades html y asi no dañan nada, y otra cosa pienso que asi no funcionara tu codigo porq la variable url: "prueba.php", no deberia tener ese valor si no consulta.php

suerte "es mi primera respuesta en FDW jejeje"
  #3 (permalink)  
Antiguo 06/08/2011, 04:32
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 14 años, 4 meses
Puntos: 11
Respuesta: vulnerabilidad XSS con jquery

ok. Muchas gracias!

1 saludo!
  #4 (permalink)  
Antiguo 07/09/2011, 15:18
Avatar de seik!  
Fecha de Ingreso: mayo-2006
Mensajes: 492
Antigüedad: 18 años, 5 meses
Puntos: 6
Respuesta: vulnerabilidad XSS con jquery

La verdad que los metos ajax de jquery solo facilitan la comunicacion asincronica entre documentos .php

El manejo de variables tal como comentaban deben tener las mismas consideraciones que se han tenido siempre en el caso del sql por injeccion.

Si te fijas se podria construir un formulario simple para replicar tu operatoria y enviar codigo malicioso dentro de una variable post o generar algun robot que ataque por recurrencia tu server.

Lo demas es lo mismo de siempre, usalo con tranquilidad... recuerda que es basicamente javascript y eso funciona a nivel de PC no se servidor.
__________________
sEIK! -Chile-
Analista Programador.
  #5 (permalink)  
Antiguo 08/09/2011, 04:29
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 14 años, 4 meses
Puntos: 11
Respuesta: vulnerabilidad XSS con jquery

Hola seik. Muchisimas gracias por responder al tema.

Te importaria porfavor darme una explicación un pelin mas detallada de este asunto?? (o alguna referencia a alguna pagina que lo comente)

Cita:
Iniciado por seik! Ver Mensaje
Si te fijas se podria construir un formulario simple para replicar tu operatoria y enviar codigo malicioso dentro de una variable post o generar algun robot que ataque por recurrencia tu server.
Alguna que otra vez he visto en algun articulo algo al respecto pero no veo cual es el peligro de que copien un formulario identico al mio y envien datos con codigo malicioso...es decir, ...al final siempre estará el server para hacer la ultima validación, no??

Una vez mas, te agradezco el interes mostrado.
  #6 (permalink)  
Antiguo 08/09/2011, 14:01
Avatar de seik!  
Fecha de Ingreso: mayo-2006
Mensajes: 492
Antigüedad: 18 años, 5 meses
Puntos: 6
Respuesta: vulnerabilidad XSS con jquery

La verdad es que el tema es simple.

jquery es un framework de javascript.

Javascript es un lenguaje que funciona del lado cliente (pc local)
javascript

luego de esto nace Ajax (combinacion de tecnologias) para poder mejorar la comunicacion de elementos DOM y la comunicacion con el servidor web (HTML,PHP, ASP, JSP, etc)
Ajax

Luego nacen los framework que solucionan temas abordados en javascript y otros desde los comienzos de la navegacion web (CGI antiguamente). Los cuales implentan librerias (soluciones probadas y funcionales) a necesidades comunes del desarrollo web de una manera muchos mas simple, acotada, limpia y practica.
jquery, Prototype, ETC...


Como veras.. la seguridad sigue siendo desde el lado del servidor Web... En lo personal uso jquery para limpiar variables y mejorar la experiencia de la navegion de usuario. Comunicacion con otras hojas de .php por ejemplo para precargar datos, etc..

Solo debes preocuparte del comportamiento de tus variables una vez recibidas en el tu servidor... cuidar tus querys y validaciones de este tipo.

Espero con esto ayudarte a entender todas estas combinaciones de tecnologias y su comportamiento.

Saludos
__________________
sEIK! -Chile-
Analista Programador.
  #7 (permalink)  
Antiguo 09/09/2011, 01:29
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 14 años, 4 meses
Puntos: 11
Respuesta: vulnerabilidad XSS con jquery

ok, gracias por la informacion seik!

Etiquetas: html, javascript, js, php, vulnerabilidad, xss
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 3 personas




La zona horaria es GMT -6. Ahora son las 13:00.