Foros del Web » Programando para Internet » PHP »

Como Puedo Proteger la direcciones de los archivos?

Estas en el tema de Como Puedo Proteger la direcciones de los archivos? en el foro de PHP en Foros del Web. Wenas mi idea es a ver si alguien sabe como puedo hacer pa que no salga la url de los archivos cuando se descarga sino ...
  #1 (permalink)  
Antiguo 28/04/2003, 08:05
Axo
 
Fecha de Ingreso: abril-2003
Ubicación: Virtual
Mensajes: 953
Antigüedad: 14 años, 7 meses
Puntos: 7
Como Puedo Proteger la direcciones de los archivos?

Wenas mi idea es a ver si alguien sabe como puedo hacer pa que no salga la url de los archivos cuando se descarga sino q salga algo simliar a descargar.php?ID=21 o algo asi si que se vea http://rutadedondestan.com/carpeta/archivo.zip
  #2 (permalink)  
Antiguo 28/04/2003, 08:33
 
Fecha de Ingreso: diciembre-2002
Mensajes: 341
Antigüedad: 15 años
Puntos: 0
Si envias las siguientes cabeceras en tu script descargar.php deberia funcionar:

header("Content-Type: application/download\n");
header("Content-Disposition: attachment; filename=$file");

Donde la variable $file contiene el fichero a descargar, cuya ubicación lo has obtenido de la base de datos.
__________________
guebs - alojamiento web y dominios
www.guebs.com
blog.guebs.com
  #3 (permalink)  
Antiguo 28/04/2003, 09:37
Axo
 
Fecha de Ingreso: abril-2003
Ubicación: Virtual
Mensajes: 953
Antigüedad: 14 años, 7 meses
Puntos: 7
Código PHP:
<?
    $result 
mysql_query("SELECT * FROM $tabla WHERE ID='$ID'",$link);
    
        while (
$row mysql_fetch_array($result))
    
    {
 
$archivo=$row["url"];

    }

header("Content-Type: application/download\n");
header("Content-Disposition: attachment; filename=$archivo");

?>

No sale, simplmente se abre la pagina y se queda sin descargar nada.
  #4 (permalink)  
Antiguo 28/04/2003, 09:39
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Muuuy interesante! voy a probarlo yo también.

Hay que tener alguna otra consideración? Se le puede cambiar el nombre al archivo antes de pasarlo al cliente?

Saludos!
__________________
Manoloweb
  #5 (permalink)  
Antiguo 28/04/2003, 09:42
Axo
 
Fecha de Ingreso: abril-2003
Ubicación: Virtual
Mensajes: 953
Antigüedad: 14 años, 7 meses
Puntos: 7
Manoloweb ¿¿te sale haciendo la consulta a la base de dato??
  #6 (permalink)  
Antiguo 28/04/2003, 11:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
A todo esto .. es ALTAMENTE recomendable que "pongan" esos archivos en un directorio FUERA del "documentRoot" .. osease, en servicios de hosting suele ser el "documentRoot" de tu sitio el /www/ y arriba tinen el cgi-bin y alguno mas .. bien, sería crear un directorio ahí "arriba" del /www/ para que ese archivo NO quede accesible via una llamada directa tipo: http://....

Tambien Apache dispone de sus .htaccess para proteger directorios y archivos de llamadas externas (con lo cual solo quedarían accesibles via llamadas desde PHP por ejemplo .. haciendo un readfile() y entregandolo con las cabeceras HTTP que pusieron) .. NO es necesario que el nombre del archivo o el archivo en sí está en una BD .. SOLO el directorio ha de estar protegido via .httacces o bien arriba del "documentroot".

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 28/04/2003, 14:12
Axo
 
Fecha de Ingreso: abril-2003
Ubicación: Virtual
Mensajes: 953
Antigüedad: 14 años, 7 meses
Puntos: 7
UmMm el problema está en que los archivos son externos al servidor, es decir que no estan hostpedados en el servidor.

Se podria hacer una sesion o algo poara ocultar la url o algo similar???
  #8 (permalink)  
Antiguo 28/04/2003, 14:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues si no los tienes en tu servidor donde ejecutas PHP .. usa .htaccess en el directorio del servidor que haces referencia ..

Y si eso no te es posible ... como no subas los archivos a un FTP y los accededas via FTP desde PHP .. creo q toda técnica de "ocultar" esa ruta sería poco efectiva...

De todas formas.. si tu servidor (donde corres PHP) te permite abrir direcciones externas via fread() o fopen() .. podrías usar la técnica que te plantearon que usa cabeceras (header) HTTP ... Haz una prueba indicando el nombre del archivo con ruta URL completo: http://www.talsitiofueradelmio.com/archivos/archivo.tal

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 28/04/2003 a las 14:30
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 00:36.