Retroceder   Foros del Web > Programación para sitios web > PHP

Respuesta
 
Herramientas Desplegado
Antiguo 11-may-2008, 01:28   #1 (permalink)
Greco2 no se puede cailificar en este momento
 
Fecha de Ingreso: junio-2006
Mensajes: 80
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.
Greco2 está desconectado   Responder Citando
Antiguo 11-may-2008, 03:21   #2 (permalink)
pateketrueke tiene algunos puntos positivos de karma
 
Avatar de pateketrueke
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 1.863
Enviar un mensaje por MSN a pateketrueke
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
pateketrueke está desconectado   Responder Citando
Antiguo 11-may-2008, 17:24   #3 (permalink)
Greco2 no se puede cailificar en este momento
 
Fecha de Ingreso: junio-2006
Mensajes: 80
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.
Greco2 está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 15:08.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93