elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  (Solucionado) Agregar seguridad a Guestbook
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: (Solucionado) Agregar seguridad a Guestbook  (Leído 3,443 veces)
2Fac3R


Desconectado Desconectado

Mensajes: 300


Why be a king when you can be a god


Ver Perfil WWW
(Solucionado) Agregar seguridad a Guestbook
« en: 25 Enero 2012, 21:59 pm »

Hola amigos, resulta que ando en practicas con PHP + MySQL (y un poco de todo) y desde hace tiempo que me ando haciendo un guestbook. Resulta que segun yo, ya lo tenia "seguro" (sabia que no mucho, pero por lo menos sec. basica si) y aun amigo, que ha estado mas adentrado en el mundo del XSS, me ha encontrado bugs muy facilmente, y la verdad que no se como fixearlos.

Este es mi code:

Código
  1. <?php
  2. echo "<title> Guestbook FOR TEST</title>";
  3. function filtro1($datos){
  4. $datos = htmlentities($datos);
  5. return $datos;
  6. }
  7. function filtrom($mensaje){
  8. $mensaje = strip_tags($mensaje,"<u><a><i><img><b><s>");
  9. return $mensaje;
  10. }
  11. require_once("conexion.php");
  12. $con & $select;
  13. $queryd = mysql_query("SELECT * FROM guestbook") or die (mysql_error());
  14. if(mysql_num_rows($queryd) !=0){
  15. while($data = mysql_fetch_array($queryd)){
  16. echo '
  17. <table border="0" cellpadding="3" cellspacing="3">
  18. <td> Usuario: <b>'.filtro1($data['Nick']).'</b> &nbsp;&nbsp;&nbsp;
  19. Correo: <b>'.filtro1($data['Email']).'</b> </td><br>
  20. <tr>
  21. <td> <b>Comentario:</b> <br>'.filtrom($data['Comentario']).' </tr>
  22. </table> <hr>
  23. ';
  24. }
  25. }else{
  26. echo "No hay comentarios aun \n";
  27. }
  28. if(isset($_POST['send'])&&($_POST['nombre'])&&($_POST['email'])&&($_POST['comentario'])){
  29.      $query = mysql_query("INSERT INTO guestbook(Nick,Email,Comentario)
  30. VALUES ('$_POST[nombre]','$_POST[email]','$_POST[comentario]')") or die (mysql_error());
  31. header("Location: guestbook.php");
  32. }
  33.  
  34. ?>
  35. <center>
  36. <h2> Agregar un comentario: </h2>
  37. <form action="" method="POST">
  38.  Nombre : <input type="text" maxlength="30" name="nombre"> <br>
  39.  Email : <input type="text" maxlength="40" name="email"> <br>
  40.      Comentario : <br>
  41.      <textarea rows="8" cols="120" maxlength="10000" name="comentario"></textarea>
  42.      <br>
  43.      <font size="2">
  44.      Etiquetas permitidas : &lt;a&gt; &lt;img&gt; &lt;b&gt; &lt;i&gt; &lt;u&gt; &lt;s&gt;
  45.      </font> <br> <b>Maximo 10000 caracteres</b> <br>
  46. <input type="submit" name="send" value="Comentar!">
  47. <input type="reset" value="Borrar!">
  48. </form> </center>
  49.  

Me ha sacado bugs, ya que al permitir la etiqueta <a> y <img> con un poco de javascript y CSS me ha logrado "XSSear" el guestbook.

Lo que quiero hacer basicamente, es seguir permitiendo ciertas etiquetas, pero poder filtrar todo tipo de ataque.

Alguna idea?
Zalu2


« Última modificación: 26 Enero 2012, 23:12 pm por 2Fac3R » En línea

Escuela de Hackers & Programación. http://ihackndev.blogspot.com/
2Fac3R


Desconectado Desconectado

Mensajes: 300


Why be a king when you can be a god


Ver Perfil WWW
Re: Agregar seguridad a Guestbook
« Respuesta #1 en: 26 Enero 2012, 17:04 pm »

Vale como nadie ha respondido, supongo que no fui claro.

Lo que quiero hacer especificamente es que se filtre todo lo que entre pero se permita en etiquetas <a> y <img> asi:
Código
  1. <img src=""></img>
  2. <a href=""> </a>
  3.  
Solo esos argumentos/parametros de esas etiquetas quiero que se permitan, alguien sabe como hacerlo?
Zalu2


En línea

Escuela de Hackers & Programación. http://ihackndev.blogspot.com/
dark_sargon


Desconectado Desconectado

Mensajes: 534


CJ


Ver Perfil WWW
Re: Agregar seguridad a Guestbook
« Respuesta #2 en: 26 Enero 2012, 17:22 pm »

Podrías usar algo como BBCode en lugar de HTML directamente.
Código:
[img]src de la imagen[/img]
[url]href del vínculo[/url]

Pienso que es más facil.

http://www.desarrolloweb.com/articulos/2438.php
En línea

http://www.actimediaonline.com
Diseño Web, animación y más.

http://www.ciudadoscura.com
Diseño Web, electrónica, programación, móviles y más.
2Fac3R


Desconectado Desconectado

Mensajes: 300


Why be a king when you can be a god


Ver Perfil WWW
Re: Agregar seguridad a Guestbook
« Respuesta #3 en: 26 Enero 2012, 23:11 pm »

Podrías usar algo como BBCode en lugar de HTML directamente.
Código:
[img]src de la imagen[/img]
[url]href del vínculo[/url]

Pienso que es más facil.

http://www.desarrolloweb.com/articulos/2438.php

Genial amigo, pensaba que el BBcode era instalado o algo externo. Me ha servido bastante el link :D
Gracias
Zalu2
En línea

Escuela de Hackers & Programación. http://ihackndev.blogspot.com/
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[SOLUCIONADO]Agregar registro a sql server
Bases de Datos
diego_lp 6 8,813 Último mensaje 12 Septiembre 2009, 21:04 pm
por diego_lp
Problema al agregar al registro[Solucionado]
.NET (C#, VB.NET, ASP)
Pablo Videla 4 4,934 Último mensaje 22 Noviembre 2009, 01:21 am
por Pablo Videla
[SOLUCIONADO] Agregar item a combo (API)
.NET (C#, VB.NET, ASP)
elmaro 6 7,522 Último mensaje 14 Enero 2010, 14:25 pm
por elmaro
Agregar caracter aun cadenas en c# (RFC)(Solucionado)
.NET (C#, VB.NET, ASP)
mr_marley 9 12,203 Último mensaje 8 Julio 2010, 23:54 pm
por mr_marley
[SOLUCIONADO] Agregar Registro
Programación Visual Basic
VanHan 4 3,309 Último mensaje 22 Noviembre 2010, 19:29 pm
por VanHan
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines