viernes, 17 de mayo de 2013

Redirigir enlaces de descarga a reCAPTCHA mediante .htaccess y php

He estado trasteando un poco.

Hace días que le vengo dando vueltas a si las descargas de pdf que hay en algún servidor al que tengo acceso son de personas o de máquinas (llegan a suponer un problema de ancho de banda), por lo que se me ha ocurrido la posibilidad que he publicado en GitHub (también estoy experimentando con GitHub).

Cómo funciona:
  1. La regla en .htaccess redirige de forma transparente cualquier solicitud a un archivo pdf a la àgina request.php pasando como parámetro el nombre del archivo pdf.
  2. Si no se ha pasado la verificación anteriormente, aparece un CAPTCHA para a verificar que hay una persona tras la solicitud.
    • Si se pasa la verificación se inicia la descarga del documento (si no se muestra el pdf dentro del navegador como hace actualmente firefox o el plugin de adobe entonces en 10 segons dede que se envía el captcha vuelve a la página anterior, puede que se de el caso de que vuelva a la página anterior antes de mostrar el pdf dentro del navegador si el archivo tarda más en descargarse, tampoco lo he probado).
    • Si no se pasa la verificación muestra un mensage (o cualquier cosa) ahora hay el que venía como ejemplo de reCaptcha.
  3. Si ya se ha pasado la verificación durant la sesión actual (que no se ha cerrado el navegador) no muestra el captcha y descarga el documento directamente.
Por desgracia ya he encontrado un problemilla, el "guardar como..." del botón derecho del enlace no funciona bien si no se ha pasado el captcha.

Como punto de partida me ha parecido una opción interesante y es independiente del gestor de contenidos que se use.