Antileech sencillo con Php

El Antileech se utiliza para evitar exponer el link directo a un archivo que pueda descargarse.

Otra ventaja de ésta técnica, es que podemos forzar las descargas para que se realicen desde nuestra página.

Lo que vamos a hacer, es generar un archivo de descarga que, dependiendo de algún parámetro que pueda llegarle, va a leer el contenido de un archivo, y ese contenido, será impreso en nuestro archivo de descarga.

De ésta forma, la ubicación real del archivo nunca será expuesta.

El ejemplo:

<?php
$archivo = "documento.pdf";
$carpeta = "descargas/";
header("content-disposition: attachment; filename=" . $archivo);
header("content-type: application/octet-stream");
header("content-length: " . filesize($carpeta . $archivo));
header("pragma: no-cache");
header("expires: 0");
$lectura = fopen($carpeta . $archivo,"r");
echo fread($lectura,filesize($carpeta . $archivo));
fclose($lectura);
exit();
?>

Lo que nos va a interesar modificar, es el valor de las variables $archivo y $carpeta.

Según cada caso, puede llegar el nombre del archivo mediante un $_POST o un $_GET; o en lugar del nombre, algún id que a través de alguna consulta a base de datos, nos de el nombre del archivo a descargar.

Las posibilidades son tantas como escenarios enfrentemos.