Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/06/2009, 21:34
Avatar de kaninox
kaninox
 
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 19 años, 5 meses
Puntos: 49
seguridad en libro de visitas

holas me han pedido rehacer un libro de visitas en una web, en el cual han estado metiendo código malicioso según ellos, entonces voy a ver el fuente y tienen

formulario :
Código html:
Ver original
  1. <form method="POST" action="pagina1.php">
  2. <input type="text" name="nick"><br>
  3. <textarea name="mensaje"></textarea><br>
  4. <input type="submit" name="enviar" value="Enviar">
  5. </form>

y en el php solo tiene

Código php:
Ver original
  1. <?php
  2. if (($_POST[nick] != "") && ($_POST[mensaje] !=""))
  3. {
  4. mysql_query ("INSERT INTO libro"
  5.                 ." (nick, comentarios)"
  6.                 ." Values"
  7.                 ." ('$_POST[nick]', '$_POST[mensaje]')") or die ("Error ".mysql_error());
  8. echo "Se Ingreso tu comentario correctamente";
  9. }
  10. else
  11. {
  12. echo "Debes Ingresar todos los Campos";
  13. }
  14. ?>


obiamente le debo aplicar mas restricciones que saltan al a vista, pero mi duda es con addslashes(); por ejemplo ya me evito problemas, y si ademas agrego una funcion tipo

Código php:
Ver original
  1. function limpiaCadena ($cadena)
  2. {
  3. $cadena=mysql_real_escape_string($cadena);
  4. return $cadena;
  5. }


con mysql_real_escape_string, ya estaría asegurando mas el formulario a posibles ataques, no se si agregarían algo mas, o me pueden orientar mas al respecto....

ej, antes de ingresar a base de datos
Código php:
Ver original
  1. $usuario = limpiaCadena(addslashes($_POST[nick]));
  2. $mensaje = limpiaCadena(addslashes($_POST[mensaje]));


que pasaría si ademas agrego un htmlentities(); por ejemplo, es como mucho, es necesario? y todas esas son mis dudas

pd: agrego que ellos quieren por ejemplo que se vea codigo en el libro como se ve aqui en el foro, solo que no afecte al funcionamiento, digo si escribo <script>alert: ..... por ejemplo no me salte un alert pero que si se vea el codigo que se escribio :/

saludos...
__________________
Gokuh Salvo al mundo. PUNTO!!!!