Foros del Web » Programando para Internet » PHP »

Vulnerabilidad en sistema de noticias

Estas en el tema de Vulnerabilidad en sistema de noticias en el foro de PHP en Foros del Web. Haber si me pueden ayudar: estoy en la creación de un sistema de noticias con comentarios en PHP+MySQL, de los más simple. El tema es ...
  #1 (permalink)  
Antiguo 16/04/2006, 09:04
 
Fecha de Ingreso: abril-2006
Mensajes: 15
Antigüedad: 11 años, 8 meses
Puntos: 0
Vulnerabilidad en sistema de noticias

Haber si me pueden ayudar: estoy en la creación de un sistema de noticias con comentarios en PHP+MySQL, de los más simple. El tema es que tengo dos problemas:

El primero, y más importante, es que el código HTML arbitrario está habilitado. Eso es bueno para mí en el caso de que quiera ponerlo en una noticia, pero me di cuenta que también está habilitado en los comentarios, lo que puede probocar que cualquiera ingrese un <script>alert('sad')</script> (eso sería mínimo, pero como ejemplo vale) o cualquier código HTML. Lo que vendría a necesitar es un código que pase todo a texto, pero no lo consigo.

El segundo es un poco ás relevante, pero hay que ser atento para descubrirlo. Lo que sucese es que para entrar a la sección de posteo de noticias hay que estar loguado, eso es bueno, pero probé lo siguiente sin logearme, y funcionó: lo que hice fue copiar lo siguiente y ejecutarlo desde un archivo htm.

Código:
<h2>Publicar</h2>
<form name="post-text" method="post" action="(la_url)/index.php?tr=publicar">
       <p><br /></p>
       <p><input type="text" name="titulo"></p>
         <p><textarea name="text" class="texto"></textarea></p>
         <p><input type="checkbox" value=on name="commentable"> Habilitar comentarios</p>   
       <p><input type="hidden" name="noticia" value="nueva"></p>
       <p><input type="submit" name="enviar" value="Enviar"></p>
       </p>
</form>

Resulta que probando esto sin logearme puedo postear noticia cualquiera, sin estar logueado.


Si me ayudan se los agradezco.
  #2 (permalink)  
Antiguo 16/04/2006, 10:20
Avatar de atak  
Fecha de Ingreso: julio-2005
Ubicación: Huancayo
Mensajes: 490
Antigüedad: 12 años, 4 meses
Puntos: 5
De acuerdo Sessiones

Hola Kolp

A lo mejor el tema de las SESSIONES para poder accesar a tu pagina te podría ayudar ......

La idea sería que cada usuario con logeo previo inicie una sesion de pag en pag.

Espero que en algo te ayude

Salu2

__________________
. .: El mejor Inicio :. .
  #3 (permalink)  
Antiguo 16/04/2006, 10:35
 
Fecha de Ingreso: abril-2006
Mensajes: 15
Antigüedad: 11 años, 8 meses
Puntos: 0
Eso me olvidé de comentar: el logue es solo para el administrador, parapoder publicar las noticias y demás cosas.

Recien lo acabo de solucionar ese. Lo que hice fue que si no había logue que no vaya a la función de puclicación.

Código:
if (isset($_SESSION['admin'])) {
          function procesar(){
                              ...
          }
}
else {
          function procesar(){
	         echo "<h2>Acceso denegado</h2>";
	}
}
era fácil, había que pensar un poco ¬¬

Lo único que no consigo es la función para dejar los códigos HTML como texto.


Muchas gracias atak.
  #4 (permalink)  
Antiguo 16/04/2006, 16:05
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 12 años, 5 meses
Puntos: 6
Quizas esto te pueda servir ;)

http://de.php.net/striptags

Saludos.
  #5 (permalink)  
Antiguo 16/04/2006, 17:43
 
Fecha de Ingreso: abril-2006
Mensajes: 15
Antigüedad: 11 años, 8 meses
Puntos: 0
Puede solucionar el otro problema relacionado a la inserción de código HTML por párte de los usuarios en los comentarios.

Lo que hice es lo siguiente:

Código:
function rem_usu($texto){
   $it = ' ' . $texto;
   $it = preg_replace("`\<`is",'&lt;', $it);
   $it = preg_replace("`\>`is",'&gt;', $it);
   return($it);
}

echo rem_usu($comentarios);
Lo que hace esto es remplazar los < > de los tags para que los lea como &lt y &gt.

Lo probé en un archivo php independiente y me funciona bien, pero cuando lo pruebo en el sistema de noticias para el tema de los comentarios, pero me tira este error:

Cita:
Fatal error: Cannot redeclare rem_usu() (previously declared in e:\proyect\e10a\noticias.php:396) in e:\proyect\e10a\noticias.php on line 396
Es raro porque lo probé en el otro archivo y funcionó, y en noticias.php me salta error.

Ahora bien, el tema del código HTML lo voy a hacer con strip_tags (gracias Fridureiks), parece más fácil. Pero lo que ahora más me está jodiendo es el error este nuevo, porque al parecer me lo está haciendo con muchas funciones que ingreso.


Saludos

Última edición por Kolp; 16/04/2006 a las 19:11
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 09:42.