Ocultar URL de descarga

Intento que la URL de un documento PDF descargable sea invisible para el usuario, de modo que no pueda acceder a ella desde ningún otro lado. Necesito ocultar la URL de la esquina inferior izquierda de la página (cuando pasan el mouse) y la URL de la barra de direcciones del navegador cuando la abren. Necesito que funcione en todos los navegadores.

Mi HTML se ve así:

View PDF 

Y el enlace debería verse así:

Ver PDF

El motivo es que el usuario debe proporcionar un código para poder descargar su documento, pero si pueden ver la URL, pueden descargar fácilmente los documentos de otra persona (solo tienen que cambiar un dígito en la parte “a34501.pdf”).

Leí algo sobre el uso de una función de JavaScript para encriptar la URL, o usar un archivo PHP externo. Sin embargo, no sé cómo hacer eso.

Gracias.

Ocultar la URL desconcertará a los usuarios menos conocedores de la tecnología, pero no a cualquiera que esté dispuesto a descargar sus archivos y tener un conocimiento tecnológico mínimo, si necesita ocultar sus archivos detrás de un código (o pago directo) puede usar un script PHP que autentica al usuario y escupe el archivo correspondiente, un pequeño ejemplo es el siguiente:

 if($validUser) { $path = $fileName; $size = filesize($path); $fp = fopen($path, "rb"); $content = fread($fp, $size); fclose($fp); header("Content-length: ".$size); header("Content-type: application/octet-stream"); header("Content-disposition: attachment; filename=".$fileName.";" ); echo $content; } exit(); 

Esto supone que tienes los archivos físicamente en el servidor, pero puedes modificarlos si los tienes en una base de datos o en cualquier otro medio de almacenamiento. Por supuesto, primero debe validar si el usuario tiene derecho a descargar ese archivo, pero depende de usted.

Puede usar una secuencia de comandos php para proporcionar el documento, al tiempo que permite que php autentique la información de sesión del usuario / etc.

El proceso es así:

  1. El usuario ingresa un código único (después de la autenticación adicional requerida para validar al usuario).
  2. Se genera un enlace de documento único, como: http://domain/download.php?file=58afg71057ga82157 (ejemplo)
  3. download.php valida la solicitud del usuario contra la información almacenada de la sesión: si todo sale bien, envía el encabezado del archivo () y lo pasa junto con el contenido del archivo.

Este tutorial básico de descarga de archivos proporciona los principios básicos de proporcionar un archivo de esta manera. Deberá mejorar este tutorial básico, pero debería darle una idea de cómo funciona el proceso.

Sugerencias:

  • Use una “clave” única por usuario (permitiendo que el mismo usuario vuelva a descargar); o,
  • Una clave de un solo uso que solo permite una descarga única; o,
  • Requerir autenticación de usuario, para que sepa si se debe “permitir” el uso de la clave.
  • No utilice “filename.ext” para buscar el archivo que desea descargar, ya sea que almacene el nombre en la sesión o use un identificador único almacenado en una base de datos.
  • No solo copie y pegue las secuencias de comandos de ejemplo, a menudo son extremadamente inseguras.