Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: basickdagger en 16 Diciembre 2013, 17:30 pm



Título: descargar archivos PHP
Publicado por: basickdagger en 16 Diciembre 2013, 17:30 pm
bueno ya antes habia descargado archivos php con un ejemplo q ronda por la web....
el problema surge cuando usuario X descarga de carpeta 1 y usuario Y descarga d e carpeta 2
dependiendo el usuario yo hago esto..
 
Código:
<a href="descarga.php?archivo=documentos/'.$row['ruta'].'" >'.$row['archivo'].'</a>


y si descarga pero ps claramente esto no es seguro como puedo agregarle algo de seguridad a este código? quiero aclarar q $row['ruta'] a veces es carpeta1 o carpeta2 o carpeta3 dependiendo la session iniciada...

Código:

$file = $_GET['archivo'];
header("Content-disposition: attachment; filename=$file");
header("Content-type: application/octet-stream");
readfile($file);


como puedo controlar la seguridad... gracias de antemano...


Título: Re: descargar archivos PHP
Publicado por: naderST en 18 Diciembre 2013, 05:11 am
Exactamente que quieres hacer? Quieres restringir que usuario Y descargue de la carpeta 1 y que usuario X descargue de la carpeta 2?


Título: Re: descargar archivos PHP
Publicado por: basickdagger en 18 Diciembre 2013, 17:12 pm
Exactamente que quieres hacer? Quieres restringir que usuario Y descargue de la carpeta 1 y que usuario X descargue de la carpeta 2?


hola gracias por responder... si eso era lo q queria.. pero realmente mi duda era como colocarle seguridad... por q si bien la URL se modificaba
y se colocaba por ejemplo..  ../index.php ellos podian descargar archivos del sitio...

pero ya lo pude resolver... cargo primero la session del usuario registrado y la verifico si no es usuario lo corro, luego envio la url incompleta y comparo la ruta con el campo del id de mi usuario después en mi archivo download cargo lo restante de la URL, y utilizo el basename para darle el nombre a mi archivo, y concateno todos los pedacitos de la url xD...

al menos así lo hice... aún así si tienen algún consejo para darle más seguridad seria de mucha ayuda.. salu2...


Título: Re: descargar archivos PHP
Publicado por: naderST en 18 Diciembre 2013, 19:19 pm
Simplemente no dejes que el php descargue exactamente lo que está en la URL, pudieras asociarle un ID a cada archivo en una tabla de una BD o algo similar.

EDIT

También pudieras validar que la ruta del archivo no contenga "../" para evitar que descarguen desde directorios padres.