Foros del Web » Programando para Internet » PHP »

Problema con sistema de comentarios

Estas en el tema de Problema con sistema de comentarios en el foro de PHP en Foros del Web. Buenas, mi problema es: Me propuse instalar un sistema de comentarios PHP sin base de datos, lo consegui y lo hice funcionar, pero lo empeze ...
  #1 (permalink)  
Antiguo 18/02/2011, 16:35
 
Fecha de Ingreso: febrero-2011
Mensajes: 124
Antigüedad: 13 años, 1 mes
Puntos: 4
Problema con sistema de comentarios

Buenas, mi problema es:
Me propuse instalar un sistema de comentarios PHP sin base de datos, lo consegui y lo hice funcionar, pero lo empeze a personalizar para ajustar el diseño y al pulsar ''Enviar'' me direcciona al index.php, en vez de que se publique el comentario y diga ''Comentario publicado''
PD: el comentario no se publica
aqui el codigo
CODIGO ORIGINAL:
Código PHP:
<?
/*Material programado por http://dedydamy.com*/
//Funcion para eliminar ataques XSS de nombre y mensajes
    
function e($e){
        
$e nl2br(htmlentities($e));
        
$e stripslashes($e);
        return 
$e ;
    }
//
    
if ($_POST['comentar']){
        
##obteniendo desde POST
        
$nombre=e($_POST['nombre']);
        
$comentario=e($_POST['comentario']);
            if(empty(
$nombre)){//si esta vacio usuario es anonimo
                
$nombre="Anonimo";
            }
        
##reuniendo datos
 
        
$fecha=date("(D/M/Y)");
        
$error="Comentario Publicado.";
 
        
##contadores magicos (suma)
 
        
$archivo2 "comentarios/contador2.txt";
        
$contador2 0;
        
$fp2 fopen($archivo2,"r");
        
$contador2 fgets($fp226);
        
fclose($fp2);
        ++
$contador2;
        
$fp2 fopen($archivo2,"w+");
        
fwrite($fp2$contador226);
        
fclose($fp2);
 
        
##contadores magicos (resta) para ascendente
 
        
$archivo "comentarios/contador.txt";
        
$contador 0;
        
$fp fopen($archivo,"r");
        
$contador fgets($fp26);
        
fclose($fp);
        --
$contador;
        
$fp fopen($archivo,"w+");
        
fwrite($fp$contador26);
        
fclose($fp);
 
        
##salida de el arcvhio, aca se puede modificar <img src="http://dedydamy.com/wp-includes/images/smilies/icon_razz.gif" alt=":P" class="wp-smiley"> 
 
        
$salida='
        <hr>
        <h3>'
.$contador2.'.- Comentado por '.$nombre.' - <small>'.$_POST[email].'</small></h3>
        <div style="padding-left:20;">'
.$fecha.'</div>
        <div style="padding-left:20; padding-top:5; padding-bottom:10;">
        <h4>'
.$comentario.'</h4>
        </div>
        <hr>'
;
        
$fp=fopen("comentarios/$contador.php","a");
        
fwrite($fp,$salida);
        
fclose($fp);
    }
/*Material programado por http://dedydamy.com*/
?>
<? 
echo"<h3>$error</h3>" ?><br><br>
<form action="index.php" method="post">
Nombre (Dejar en blanco para Anonimo)<br />
<input id="nombre" name="nombre" type="text" />
<br />
<br />
Email (Obligatorio)<br />
<input id="email" name="email" class=":email :required" type="text" />
<br />
<br />
Comentario (Obligatorio)<br />
<textarea name="comentario" cols="42" rows="5" class=":required" id="comentario"></textarea><br />
<br />
<input class="button" name="comentar" type="submit" value="Enviar" />
</form><br />
<br />
<?
  $contador3 
="comentarios/contador2.txt";
  
$ag3 fopen($contador3"r+");
$comentarios3 fread($ag3filesize($contador3));
  
fclose($ag3);
  if(
$comentarios3 == "0"){
  echo
"<br /><br /><h2>No hay comentarios</h2>";
  }else{
  foreach (
glob("comentarios/*.php") as $comentari) {
  include (
$comentari);
  }
  }
?>
CODIGO PERSONALIZADO:
Código PHP:
<?
/*Material programado por http://dedydamy.com*/
//Funcion para eliminar ataques XSS de nombre y mensajes
    
function e($e){
        
$e nl2br(htmlentities($e));
        
$e stripslashes($e);
        return 
$e ;
    }
//
    
if ($_POST['comentar']){
        
##obteniendo desde POST
        
$nombre=e($_POST['nombre']);
        
$comentario=e($_POST['comentario']);
            if(empty(
$nombre)){//si esta vacio usuario es anonimo
                
$nombre="Anonimo";
            }
        
##reuniendo datos
 
        
$fecha=date("(D/M/Y)");
        
$error="Comentario Publicado.";
 
        
##contadores magicos (suma)
 
        
$archivo2 "comentarios/contador2.txt";
        
$contador2 0;
        
$fp2 fopen($archivo2,"r");
        
$contador2 fgets($fp226);
        
fclose($fp2);
        ++
$contador2;
        
$fp2 fopen($archivo2,"w+");
        
fwrite($fp2$contador226);
        
fclose($fp2);
 
        
##contadores magicos (resta) para ascendente
 
        
$archivo "comentarios/contador.txt";
        
$contador 0;
        
$fp fopen($archivo,"r");
        
$contador fgets($fp26);
        
fclose($fp);
        --
$contador;
        
$fp fopen($archivo,"w+");
        
fwrite($fp$contador26);
        
fclose($fp);
        
##salida de el arcvhio, aca se puede modificar :P
        
        
$salida='
        <hr size=1 width=680px noshade=“noshade” align= left 

color="#DEDFDE" />
        <img src="images/Anonimo.jpg" align="left" /><span 

class="Estilo14"> '
.$nombre.

</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&

nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb

sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n

bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs

p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n

bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs

p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span 

class="Estilo14"> '
.$contador2.' </span> <p>&nbsp;&nbsp;<small> 

'
.$_POST[email].' </small></h3></p>
        <p><div class="container_16">
<div style="padding-left:20;">'
.$fecha.'</div>
        <div style="padding-left:20; padding-top:5; padding-bottom:10;">
      <div class="grid_63 sepline"><h4>'
.$comentario.'</h4>
      </div>
      </div>
      </div>
        <hr>'
;
        
$fp=fopen("comentarios/$contador.php","a");
        
fwrite($fp,$salida);
        
fclose($fp);
    }
/*Material programado por http://dedydamy.com*/
?>
<? 
echo"<h3>$error</h3>" ?><br><br>
<form action="index.php" method="post">
Nombre (Dejar en blanco para Anonimo)<br />
<input id="nombre" name="nombre" type="text" />
<br />
<br />
Email (Obligatorio)<br />
<input id="email" name="email" class=":email :required" type="text" />
<br />
<br />
Comentario (Obligatorio)<br />
<textarea name="comentario" cols="42" rows="5" class=":required" 

id="comentario"></textarea><br />
<br />
<input class="button" name="comentar" type="submit" value="Enviar" />
</form><br />
<br />
<?
  $contador3 
="comentarios/contador2.txt";
  
$ag3 fopen($contador3"r+");
$comentarios3 fread($ag3filesize($contador3));
  
fclose($ag3);
  if(
$comentarios3 == "0"){
  echo
"<br /><br /><h2>No hay comentarios</h2>";
  }else{
  foreach (
glob("comentarios/*.php") as $comentari) {
  include (
$comentari);
  }
  }
?>
  #2 (permalink)  
Antiguo 18/02/2011, 17:13
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con sistema de comentarios

Este sistema lo creo mi amigo, un grande del php :)

Aca tenes el demo:

http://gen.dedydamy.com/comentarios/

<form action="index.php" method="post">

cambialo por

<form action="" method="post">


y listo problema resulto : )
  #3 (permalink)  
Antiguo 18/02/2011, 17:35
 
Fecha de Ingreso: diciembre-2010
Ubicación: valencia
Mensajes: 203
Antigüedad: 13 años, 3 meses
Puntos: 11
Respuesta: Problema con sistema de comentarios

ese script es vulnerable a XSS persistente y a inyeccion de codigo php, entra ahora y veras como te salta un alert que dice "we" y te sale el phpinfo(). no recomiendo que lo instales en tu server.

Cita:
Este sistema lo creo mi amigo, un grande del php :)
pues ya que es tu amigo, comentale el problema ya que tiene un buen agujero de seguridad.

Última edición por enrique4480; 18/02/2011 a las 17:41
  #4 (permalink)  
Antiguo 18/02/2011, 19:01
 
Fecha de Ingreso: febrero-2011
Mensajes: 124
Antigüedad: 13 años, 1 mes
Puntos: 4
Respuesta: Problema con sistema de comentarios

Cita:
Iniciado por marcofbb Ver Mensaje
Este sistema lo creo mi amigo, un grande del php :)

Aca tenes el demo:

[url]http://gen.dedydamy.com/comentarios/[/url]

<form action="index.php" method="post">

cambialo por

<form action="" method="post">


y listo problema resulto : )
GRACIASSS me resulto :)
Cita:
Iniciado por enrique4488 Ver Mensaje
ese script es vulnerable a XSS persistente y a inyeccion de codigo php, entra ahora y veras como te salta un alert que dice "we" y te sale el phpinfo(). no recomiendo que lo instales en tu server.
pues como lo puedo hacer mas ''invulnerable''? ya que otro sistema es muy complicado...
  #5 (permalink)  
Antiguo 18/02/2011, 19:18
 
Fecha de Ingreso: diciembre-2010
Ubicación: valencia
Mensajes: 203
Antigüedad: 13 años, 3 meses
Puntos: 11
Respuesta: Problema con sistema de comentarios

mi recomendacion es que busques algun otro sistema, eso de ir haciendo includes de archivos que contienen datos enviados por el cliente me da bastante mal rollo.
  #6 (permalink)  
Antiguo 19/02/2011, 11:55
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con sistema de comentarios

Busca

Código PHP:
Ver original
  1. <? echo"<h3>$error</h3>" ?>

Al final de todo y remplazalo por

Código PHP:
Ver original
  1. if($_POST['comentar']){echo "<h3>$error</h3>" }

Lo mire rápido pero eso es lo que encontré, hace eso y mandale un MP a enrique4480 para ver si el error persiste


Busca
Código PHP:
Ver original
  1. $_POST[email]

remplazarlo por
Código PHP:
Ver original
  1. e($_POST[email]);

Última edición por marcofbb; 19/02/2011 a las 12:01
  #7 (permalink)  
Antiguo 19/02/2011, 14:22
 
Fecha de Ingreso: diciembre-2010
Ubicación: valencia
Mensajes: 203
Antigüedad: 13 años, 3 meses
Puntos: 11
Respuesta: Problema con sistema de comentarios

dudo que la funcion e pueda evitar todas las variantes a la hora de meter codigo, pero bueno luego lo bajare y lo probare en local y te confirmo cosas.
  #8 (permalink)  
Antiguo 19/02/2011, 18:59
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con sistema de comentarios

Cita:
Iniciado por enrique4480 Ver Mensaje
dudo que la funcion e pueda evitar todas las variantes a la hora de meter codigo, pero bueno luego lo bajare y lo probare en local y te confirmo cosas.
Si ya que usa htmlintitles, imprime el codigo pero no lo ejecuta :) encambio ami amigo le falto pasar por esa funcion a los datos del mail por eso pudiste inyectar codigo

Saludos

Etiquetas: comentarios, sitemap
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




La zona horaria es GMT -6. Ahora son las 02:58.