[Tutorial] Como hacer un guestbook? (sistema para dejar comentarios)

Iniciado por DarK_FirefoX, 16 Abril 2008, 08:02 AM

0 Miembros y 1 Visitante están viendo este tema.

DarK_FirefoX

Bien, voy a hace un manual para aquellas personas que deseen crear un GuestBook(libro de visitas) en sus páginas.... o sirve para dejar comentarios acerca de un articulo..

Modifico gracias a ^Arkangel^:
El guestbook es vulnerable a ataques Html Injection (entre otras cosas), la cual es una tecnica de Deface bastante conocida, la solución sería eliminar el uso del html en el guestbook. Esto solo muestra el funcionamiento básico y sencillo de un Guestbook

Bien este GuestBook, es muy sencillo, asi que si tienen alguna otra Ide pueden ayudar.....

Sientanse libre de modificarlo o distribuirlo.

guestbook.php


<html>
<head>
      <title></title>
</head>
<body>
  <center>
   <font face="Arial" size="2">
      <form action="comentar.php" name="form" method="POST">
            Name: <input type="text" name="txt_name"><br>
            E-mail: (no se muestra) <input type="text" name="txt_mail"><br><br>
            Comment:<br><textarea rows="10" name="txt_comment"></textarea><br>
            <input type="submit" value="submit">
      </form>
   </font>
</center>


<?php
/* Este es el Script para mostrar los comentarios que estan en la BD */
/* Nos conectamos a la base de datos (debemos cambiar esta info por la de nuestro servidor web */
/* localhost por tu servidor | userlocal por tu usuario | userlocal por el password del usuario */  
mysql_connect('localhost','userlocal','userlocal');

/* questbook es la base de datos, la estamos seleccionando aqui */
mysql_select_db("questbook");

/* seleccionamos todos los campos dentro de la tabla guests */
$sql="select * from guests";

/* Enviamos la consulta al servidor y mostramos error en caso de error */
$resultmysql_query($sql) or die(mysql_error());

/* Comprobamos si la tabla esta vacia..... y si esta vacia mostramos el mensaje escrito */
if(mysql_num_rows($result)==0) die("No hay registros para mostrar");

/* Desplegamos cada uno de los registros dentro de una tabla */  
echo "<table border=1 cellpadding=4 cellspacing=0>";

/*Priemro los encabezados, es decir los nombres de las columnas*/
 
echo "<tr>
         <th colspan=5> Lista de Usuarios </th>
       <tr>
         <th> ID </th><th> Nombre</th> <th> Comment </th>
        
      </tr>"
;

/*Y ahora muestro debajo de los nombres de las columnas todos los registros  */
while($row=mysql_fetch_array($result))
{
 echo 
"<tr>
         <td> 
$row[autoID] </td>
         <td> 
$row[name] </td>
         <td> 
$row[COMMENT] </td>
  
      </tr>"
;
}
echo 
"</table>";

?>


</body>
</html>


En la página guestbook.php encontramos el siguiente código
<form action="comentar.php" name="form" method="POST">
            Name: <input type="text" name="txt_name"><br>
            E-mail: (no se muestra) <input type="text" name="txt_mail"><br><br>
            Comment:<br><textarea rows="10" name="txt_comment"></textarea><br>
            <input type="submit" value="submit">
      </form>

     
Este código no es más que el formulario que envia la informacion al script que va a enviar la información a la Base De Datos... si dean cuenta en la propiedad action esta definida para comentar.php y estamos utilizando el metodo POST, para en enviarlo como variables.
     
comentar.php


<?php
/* Nos conectamos a la base de datos (debemos cambiar esta info por la de nuestro servidor web */
mysql_connect('localhost','userlocal','userlocal');

/* questbook es la base de datos, la estamos seleccionando aqui */
mysql_select_db("questbook");

/* Pasamos los campos del formularios a Variables... */
$name $_POST["txt_name"];

/* Aqui comprobamos si el Nombre tiene mas de 0 caracteres */
$len strlen($name);
if (
$len 0)
{
 
$mail $_POST["txt_mail"];
 
$comment $_POST["txt_comment"];

/* Insertamos los datos de las variables a la Base de datos..... */
 
$query "INSERT INTO guests (autoID, name, mail, comment) VALUES (NULL, '$name', '$mail', '$comment')";
 
mysql_query($query) or die(mysql_error());
}
?>


<html>
<head>
</head>
<body>
<SCRIPT LANGUAGE="javascript">
/* Redireccionamos el navegador al formulario */
location.href = "guestbook.php";
</SCRIPT>
</body>

Amar la tierrA

Hola
intento hacer un gueestbook pero soy una novata en el tema,,, lo hice y me marca error... http://www.ximenasubercaseaux.com/guestbook.php

Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'localhost' (10061) in \\172.21.6.22\S009\ximenasubercaseaux.com\guestbook.php on line 39

Warning: mysql_select_db() [function.mysql-select-db]: Can't connect to MySQL server on 'localhost' (10061) in \\172.21.6.22\S009\ximenasubercaseaux.com\guestbook.php on line 42

Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in \\172.21.6.22\S009\ximenasubercaseaux.com\guestbook.php on line 42

Warning: mysql_query() [function.mysql-query]: Can't connect to MySQL server on 'localhost' (10061) in \\172.21.6.22\S009\ximenasubercaseaux.com\guestbook.php on line 48

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in \\172.21.6.22\S009\ximenasubercaseaux.com\guestbook.php on line 48
Can't connect to MySQL server on 'localhost' (10061)

que puedo hacer?

DarK_FirefoX

Estas segura que creaste la tabla questbook en el servidoor, con los campos

autoID name, mail, comment

??

Hans el Topo

la intención de ayudar y demás a la gente con tutoriales siempre es una buena iniciativa

pero si no tienes mucha idea de lo que estas hablando, a veces conviene reprimirse hasta saber un poquito más, ya que esa buena iniciativa se convierte en algo desastroso para los que saben menos que tú

el tutorial del libro de visitas que has hecho tiene seguridad 0, por lo tanto cualquiera que lo utilice dejará su web totalmente vulnerable a infinidad de ataques



 

дٳŦ٭

Cita de: Amar la tierrA en  2 Junio 2008, 20:25 PM
Hola
intento hacer un gueestbook pero soy una novata en el tema,,, lo hice y me marca error... http://www.ximenasubercaseaux.com/guestbook.php

Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'localhost' (10061) in \\172.21.6.22\S009\ximenasubercaseaux.com\guestbook.php on line 39

Warning: mysql_select_db() [function.mysql-select-db]: Can't connect to MySQL server on 'localhost' (10061) in \\172.21.6.22\S009\ximenasubercaseaux.com\guestbook.php on line 42

Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in \\172.21.6.22\S009\ximenasubercaseaux.com\guestbook.php on line 42

Warning: mysql_query() [function.mysql-query]: Can't connect to MySQL server on 'localhost' (10061) in \\172.21.6.22\S009\ximenasubercaseaux.com\guestbook.php on line 48

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in \\172.21.6.22\S009\ximenasubercaseaux.com\guestbook.php on line 48
Can't connect to MySQL server on 'localhost' (10061)

que puedo hacer?


Revisa la conexión a MySQL  ;)


Con sangre andaluza :)


DarK_FirefoX

Cita de: Hans el Topo en  3 Junio 2008, 10:59 AM
la intención de ayudar y demás a la gente con tutoriales siempre es una buena iniciativa

pero si no tienes mucha idea de lo que estas hablando, a veces conviene reprimirse hasta saber un poquito más, ya que esa buena iniciativa se convierte en algo desastroso para los que saben menos que tú

el tutorial del libro de visitas que has hecho tiene seguridad 0, por lo tanto cualquiera que lo utilice dejará su web totalmente vulnerable a infinidad de ataques


:-X :laugh: Pues esto lo se yo, se que no tiene seguridad, la seguridad contra los ataques le queda a los webmaster que lo vayan a utilizar, no les puedo hacer todo el trabajo, ademas el manual esta destinado solamente a aprender como trabaja el Guestbook y las funciones principales para que este trabajo....

Salu2s

Amar la tierrA

Cita de: DarK_FirefoX en  3 Junio 2008, 06:40 AM
Estas segura que creaste la tabla questbook en el servidoor, con los campos

autoID name, mail, comment

??

  :-[ no, ahora la creo, saludos y muchas gracias por la ayuda!

Hans el Topo

Cita de: DarK_FirefoX link=topic=208539.msg1021177#msg1021177
:-X :laugh: Pues esto lo se yo, se que no tiene seguridad, la seguridad contra los ataques le queda a los webmaster que lo vayan a utilizar, no les puedo hacer todo el trabajo,


de primeras no alertas sobre la falta de seguridad
así que no me salgas con excusas
cuando se programa algo se programa en condiciones, sino siempre estará mal programado y por lo tanto el tutorial carece de sentido

Citar
ademas el manual esta destinado solamente a aprender como trabaja el Guestbook y las funciones principales para que este trabajo....

para eso con dibujar un esquema en el paint hubiese bastado,
reitero lo dicho, no tiene sentido enseñar si de lo que se pretende enseñar no tenemos ni idea
 

MK-Ultra

Dos comentarios:

1º) Hans, tratá de ser menos ofensivo, puede que a DarK_FirefoX se le haya olvidado comentar que no tenía seguridad su Guestbook (falta grave), pero en vez de criticarlo puedes mostrarle un ejemplo de por donde se podría hacer un ataque así saben como arreglarlo, por ejemplo:

El guestbook es vulnerable a ataques Html Injection (entre otras cosas), la cual es una tecnica de Deface bastante conocida, la solución sería eliminar el uso del html en el guestbook.

2º) DarK_FirefoX, esta muy bueno el tutorial para los que no sepan como hacer un guestbook y lean los demás post  :rolleyes:

Te sugiero que edites el primer post agregando que el script muestra el funcionamiento básico de un Guestbook y que es vulnerable a distintos tipos de Defaces , asi tambien ayudás a los vagos que no leen hasta el fondo  :xD

Saludos,

Atte. Arkangel
Agradecer no cuesta nada (al menos no mucho)

BTC: 1DHKsWE6wGkUiHbKkwBDaF8DEGwn9n6nxQ

Hans el Topo

Cita de: ^Arkangel^ en  4 Junio 2008, 21:11 PM
Dos comentarios:

1º) Hans, tratá de ser menos ofensivo, puede que a DarK_FirefoX se le haya olvidado comentar que no tenía seguridad su Guestbook (falta grave),

pero que me estas contando, donde he sido ofensivo?
decirle las cosas como son es ser ofensivo?

si esta mal esta mal y si no sabe porque esta mal que pregunte, que no lo ha hecho, simplemente se ha limitado a lavarse las manos:

Pues esto lo se yo, se que no tiene seguridad, la seguridad contra los ataques le queda a los webmaster que lo vayan a utilizar, no les puedo hacer todo el trabajo, ademas el manual esta destinado solamente a aprender como trabaja el Guestbook y las funciones principales para que este trabajo....


Citar
pero en vez de criticarlo puedes mostrarle un ejemplo
el que hace un tutorial es porque sabe de que esta hablando,
y creo que la seguridad es el pilar fundamental de cualquier aplicación online y tal

Citarde por donde se podría hacer un ataque así saben como arreglarlo, por ejemplo:

El guestbook es vulnerable a ataques Html Injection (entre otras cosas), la cual es una tecnica de Deface bastante conocida, la solución sería eliminar el uso del html en el guestbook.

es vulnerable a todos los ataques habidos y por haber, no tiene sentido lo que dices