Foros del Web » Programando para Internet » PHP »

Fallo de seguridad, como corregirlo?

Estas en el tema de Fallo de seguridad, como corregirlo? en el foro de PHP en Foros del Web. Hola, estoy haciendo una galería de imágenes el cual utiliza un script de paginacion que encontré en este mismo foro, la particularidad de esto es ...
  #1 (permalink)  
Antiguo 11/05/2008, 01:28
 
Fecha de Ingreso: junio-2006
Ubicación: Antofagasta
Mensajes: 216
Antigüedad: 17 años, 10 meses
Puntos: 7
Fallo de seguridad, como corregirlo?

Hola, estoy haciendo una galería de imágenes el cual utiliza un script de paginacion que encontré en este mismo foro, la particularidad de esto es que no utiliza una base de datos, sino que simplemente lee el contenido de un directorio y realiza la paginacion en base a los resultados obtenidos.

Tengo varias carpetas con distintas fotos, dichas carpetas corresponden a distintas galerias de imagenes, desde un menu llamo a alguna de estas galerias (directorio) pasando como parametro el nombre del directorio (galeria.php?galeria=fotos2) para asi poder leer su contenido y realizar la paginacion, el problema es que si un usuario mal intencionado ingresa lo siguiente en la barra de direcciones http://www.misitio.com/galeria.php?galeria=../../ puede entrar a otros directorios que no corresponden a los que tengo para las galería de imagenes, no se que tan dañino pueda ser esto, espero algun comentario/consejo de los expertos que me guien a encontrar una solucion a esto.

Aqui les dejoparte del codigo que utilizo:

Código PHP:
include_once "PHPPaging.lib.php";
$paging = new PHPPaging;

// Datos del directorio a revisar
$path=$_GET['galeria'];

$dh opendir($path); 
$archivos = array();
while ((
$file readdir($dh)) !== false) { 
    if(
$file != "." && $file != "..") { 
        
$archivos[] = $file;
    } 

closedir($dh);

..... 
aqui muestro el contenidola barra de navegacionetc 
necesito poder corregir el problema que explique en el principio de este post.

Cualquier comentario es bienvenido, gracias.
  #2 (permalink)  
Antiguo 11/05/2008, 03:21
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: Fallo de seguridad, como corregirlo?

algo simple... pero hazlo!!

$path=preg_replace('/\.?\.\//i', '', $path);

esto limpiaria tu ruta de ./ y ../ no mas

tambien procura gestionar la entrada, y entregar errores si no existe la galeria... (carpeta)

solo usa un is_dir() antes de opendir() ----menos errores
  #3 (permalink)  
Antiguo 11/05/2008, 17:24
 
Fecha de Ingreso: junio-2006
Ubicación: Antofagasta
Mensajes: 216
Antigüedad: 17 años, 10 meses
Puntos: 7
Re: Fallo de seguridad, como corregirlo?

Muchas gracias pateketrueke he colocado la linea que me dijiste y ahora se solucionó el problema que te comenté, ademas utilizé el is_dir() para verificar la existencia del directorio.

Muchas gracias.
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 01:27.