Re: [PHP-ES] Aplicacion para descargas privadas

From: Ivan Rodriguez ( epplestun .en. alaplaya.com)
Date: Mon Mar 22 2004 - 18:27:23 CET


Utiliza sessiones, una vez que el usuario este autentificado dejas que se
descarge el archivo, y en vez de poner los files en la raiz de tu server web
ponlos en otra parte y haces un script para que te lo descarge tal que
podria ser algo asi:

session_start();

if($_GET['PHPSESSID'] != $_SESSION['session']) {
 header("location: error.php");
}

$archivo = base64_decode($_GET['file']);

switch(array_pop(explode('.', basename($archivo)))) {
 case "doc": $mime_type = "application/msword"; break;
 case "rtf": $mime_type = "text/richtext"; break;
 case "txt": $mime_type = "text/plain"; break;
 case "pdf": $mime_type = "application/pdf"; break;
}
//echo basename($archivo);

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: $mime_type");
header("Content-Disposition: attachment;
filename=\"".basename($archivo)."\"");
header("Content-Description: File Transfert");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($archivo));
readfile($archivo);

Esto te podria servir para hacer descargas, el readfile() le deberias pasar
el archivo de forma que este tenga solo acceso a la ruta del server.

Un saludo!

Iván Rodriguez Espada
_________________________
ALAPLAYA.COM
http://www.alaplaya.com
epplestun .en. alaplaya.com

----- Original Message -----
From: "BrOkeR" < brok3r .en. telefonica.net>
To: < php-es .en. lists.php.net>
Sent: Monday, March 22, 2004 12:19 PM
Subject: Re: [PHP-ES] Aplicacion para descargas privadas

> Lo de evitar darle el link en la web a un usuario no autentificado es
sencillo.
>
> Lo dificil es que el link que obtenga un usuario autentificado (ej.
> http://miweb/fichero.zip ) no pueda ser usado por ningun otro usuario.
>
> Me explico ?
>
> At 10:05 22/03/2004, Marcos Ramirez wrote:
> >El Monday 22 March 2004 08:40, Webmaster ALPHACOM escribió:
> >WA> Tambien puedes comprabar que la ip de usuario es igual que la de la
> >
> >Esto es absurdo a no ser que hablemos de ip's fijas.
> >
> >WA> persona que se lo quiere bajar, por ejemplo crearte una tabla mysql
de
> >WA> usuarios activos en ese momento o guarar en una cookie el usuario
pass e
> >WA> ip por la que accedio, y en la pagina donde tengas el link comprobar
que
> >WA> el usuario que se lo quiere descargar coincide con la ip que accedio
si
> >WA> no que no muestre el link, y ademas para mas seguridad y que no se
pasen
> >WA> usuario y pass de una persona a otra pon un limite de veces que se
puede
> >WA> descargar ese archivo un usuario (otra tabla mysql)
> >
> >Esto es más o menos lo mismo que le dije en el otro mail, pero añadiendo
el
> >ipcheck, que como ya digo es absurdo si no hablamos de ip's fijas.
> >
> >Del mismo modo, pide SEGURIDAD, y guardar nada en una cookie, y
seguridad, no
> >son compatibles.
> >
> >Además, demasiada complicación planteas, cuando si verifica el usuario
con
> >user/pass, simplemente que mire si quien lo quiere bajar es un usuario
> >autentificado, con una simple variable de sesion vale.
> >
> >Ya sabes, KISS!!
> >
> >--
> >Marcos Ramirez .:: Linux Registered User #349823 ::.
> >Debian SID Kernel 2.4.22-openmosix-1.
> >
> >Antes de preguntar nada, lee! y recuerda, Google es tu amigo, yo no.
> > http://www.sindominio.net/ayuda/preguntas-inteligentes.html
> >
> >--
> >PHP Spanish Localization Talk Mailing List (http://www.php.net/)
> >To unsubscribe, visit: http://www.php.net/unsub.php
>
> --
> PHP Spanish Localization Talk Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>

-- 
PHP Spanish Localization Talk Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


This archive was generated by hypermail 2.1.7 : Fri May 14 2004 - 16:04:41 CEST