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

Primero, no permitas que tus ficheros sean accesibles directamente desde el navegador. Es decir, que no exista una URL directa al fichero. Lo puedes hacer guardando los ficheros en un directorio superior al raiz del sitio, o configurando tu servidor para que de error (o redireccione) ante cualquier peticion al directorio de los ficheros.

Segundo, crea un script que se encarge de descargar el fichero. Hay varios en el foro. Basicamente es un script que se llame descargar.php?f=fichero.ext (o descargar.php?f=id si prefieres tenerlos almancenados en una bd), que al comienzo compruebe si existe una variable de sesion (y esta tiene un valor valido) y luego envie las cabeceras HTTP y el contenido correspondiente al fichero. Si la variable de sesion no existe o no tiene valor valido, redireccionas a tu pagina de descargas.

En la pagina de descargas creas y asignas un valor valido a la variable de sesion, y pones los links de descargas a descarga.php?f=fichero.ext. Al existir la variable de sesion, descargas.php descarga el fichero.

En lugar de la variable de sesion, podrias comprobar en descargas.php que el valor del HTTP_REFERER es o vacio o tu pagina de descargas. Lo de vacio es para que los visitantes que tienen configurado su navegador o proxy para no enviar ese valor (por motivos de seguridad). Pero tambien es cierto que algunos navegadores en algunas versiones (IE, el mayoritario) no envia el HTTP_REFERER en los links javascript. Asi que tus "ladrones" de ancho de banda solo tendrian que poner los links a tus ficheros como links javascript.

Por eso creo que es mejor usar la variable de sesion.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.