Foros del Web » Programando para Internet » PHP »

Ocultar o asegurar ruta de archivo telecargable...

Estas en el tema de Ocultar o asegurar ruta de archivo telecargable... en el foro de PHP en Foros del Web. Hola... Pues creo que en esta ocasión el tùitulo es claro ... A través de un sistema de "login", ciertos usuarios tienen la posibilidad de ...
  #1 (permalink)  
Antiguo 24/08/2010, 05:42
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 7 meses
Puntos: 5
Ocultar o asegurar ruta de archivo telecargable...

Hola...

Pues creo que en esta ocasión el tùitulo es claro ... A través de un sistema de "login", ciertos usuarios tienen la posibilidad de "cargar" un archivo con una información privilegiada.

Sin embargo, me he percatado que copiando la dirección del path donde el archivo está localizado, cualquier persona lo podría cargar sin loguearse.

Hay alguna posibilidad, através de PHP en la que pueda "esconder" esa ubicación o al menos de asignarle una especia de HASH?

Saludos.
__________________
Andrew :P
  #2 (permalink)  
Antiguo 24/08/2010, 05:48
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Ocultar o asegurar ruta de archivo telecargable...

Eso lo puedes lograr con htaccess o simplemente puedes colocar los archivos fuera del directorio donde guardas los archivos de página web y llamarlo con PHP. En el manual hay ejemplos de como forzar la descarga de un archivo usando header.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 24/08/2010, 08:15
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 7 meses
Puntos: 5
Pregunta Respuesta: Ocultar o asegurar ruta de archivo telecargable...

Gracias por tu respuesta Abimaelrc...

Finalmente he seguido tus pautas y he encontrado un tutorial bastante útil para el tema que lo transcribo aquí:

Código PHP:
Ver original
  1. <?php
  2.  
  3. if (!isset($_GET['file']) || empty($_GET['file'])) {
  4.  exit();
  5. }
  6. $root = "archivos/";
  7. $file = basename($_GET['file']);
  8. $path = $root.$file;
  9. $type = '';
  10.  
  11. if (is_file($path)) {
  12.  $size = filesize($path);
  13.  if (function_exists('mime_content_type')) {
  14.  $type = mime_content_type($path);
  15.  } else if (function_exists('finfo_file')) {
  16.  $info = finfo_open(FILEINFO_MIME);
  17.  $type = finfo_file($info, $path);
  18.  finfo_close($info);
  19.  }
  20.  if ($type == '') {
  21.  $type = "application/force-download";
  22.  }
  23.  // Definir headers
  24.  header("Content-Type: $type");
  25.  header("Content-Disposition: attachment; filename=$file");
  26.  header("Content-Transfer-Encoding: binary");
  27.  header("Content-Length: " . $size);
  28.  // Descargar archivo
  29.  readfile($path);
  30. } else {
  31.  die("El archivo no existe.");
  32. }
  33.  
  34. ?>

Sin embargo, siguiendo los pasos a rajatabla, lo que solo cargo es una especie de "layout" de la página web y no el archivo.

Esto obedece a algún problema de permisos en especial?...

Gracias.
__________________
Andrew :P

Etiquetas: ruta
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 09:32.