Presentamos File Gate
Hemos publicado File Gate, un módulo gratuito y de código abierto para Drupal que convierte un archivo "privado" en un archivo realmente restringido, tanto para sitios desacoplados como acoplados e híbridos. Ya está disponible en drupal.org.
Por qué lo creamos
Drupal concede la descarga de un archivo privado a cualquiera que pueda ver el contenido que lo referencia. Como los visitantes anónimos pueden ver contenido publicado, un archivo private:// adjunto a una página publicada es, en la práctica, público para cualquiera que tenga el enlace: private:// significa "no está en un directorio público", no "restringido". Esa brecha es exactamente la que afecta a los documentos de captación de clientes potenciales, los informes restringidos y los entregables de pago, y es más grave en un sitio desacoplado, donde la condición de acceso (un formulario, un inicio de sesión, una compra) vive en un sistema distinto del archivo.
Nos topamos con ella al construir la plataforma desacoplada detrás de wilkesliberty.com y, en lugar de resolverla una sola vez, creamos la solución como un módulo reutilizable y la devolvimos a la comunidad.
Qué hace File Gate
- Deniega la ruta directa. Un veto firme sobre
/system/filespara cualquier archivo privado referenciado por un campo restringido, que anula el acceso permisivo del núcleo a los archivos privados. - Entrega a través de una ruta firmada. Los bytes se transmiten desde el punto de acceso propio del módulo solo después de que un método de acceso extensible aprueba la solicitud, y la URL firmada lleva el UUID del archivo, nunca su ruta de almacenamiento.
- Emite de servidor a servidor. Su back end aplica su condición de acceso como prefiera y luego pide a Drupal una URL de corta duración, firmada con HMAC, para un archivo específico. El secreto nunca llega al navegador.
- Falla en modo cerrado. Sin un secreto de firma configurado, el módulo se niega a emitir y todos los archivos restringidos permanecen denegados: una configuración incorrecta produce una falla visible, no una fuga silenciosa.
- Independiente del front end. No presupone nada sobre React, Next.js, Vue ni un tema Twig acoplado. Funciona en cualquier lugar donde funcione Drupal.
Obténgalo
File Gate requiere Drupal 11.4 o superior y un sistema de archivos privado. Instálelo con Composer:
composer require drupal/file_gate- Página del proyecto y versiones: drupal.org/project/file_gate
- Código fuente y contribuciones: github.com/Wilkes-Liberty/file_gate
La versión actual es 1.6.1, publicada bajo la licencia GPL-2.0-or-later. Para conocer el panorama completo, lea la descripción general del proyecto de código abierto File Gate y el informe técnico de ingeniería Restringir archivos privados en un CMS desacoplado.