Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/12/2003, 05:12
josemi
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Una opcion seria limitar el acceso por web de esa carpeta, configurando el servidor web para que esa carpeta/tipo de ficheros no acepten peticiones GET y/o POST. O incluso proteger con password el directorio.

O poner ese directorio con los ficheros fuera del espacio web de tu web. Es decir, por encima de tu directorio raiz. Esto no te lo permiten todos los hostings.

En cualquier caso, luego tendrias que hacer un script PHP que devuelva el contenido del fichero, con las cabeceras Content-type y content-disposition correspondientes. En ese script tendrias que poner la logica para evitar que el script sea llamado desde otro servidor, porque sino seguiriamos en la misma. Podrias intentar con HTTP_REFERER, pero no siempre existe. Seria mejor usar una sesion, o crear un link de un solo uso (uno con un id unico para cada ocasion que se descarge el fichero, almacenando en una bd los id validos, que marcas como "usado" cada vez que se usen), para que si lo usan otra vez "falle" (puedes redireccionar la peticion a alguna cosa "graciosa" para hundir la "reputacion" de tu ladron).

Creo que habia en algun mensaje codigo de ejemplo de como se implementan esta soluciones. Aunque creo que con esta descripcion ya se puede empezar a diseñar uno. De todas formas, luego intento localizarlo.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.