Sólo para una breve descripción. Tengo un sistema que puede generar facturas y un sistema de inicio de sesión para que un usuario genere sus facturas. Digamos que la plataforma reside en /platform
y las facturas en /platform/invoices
y la plataforma está en el dominio www.exmaple.com
. Las personas pueden iniciar sesión y generar sus facturas, lo que genera efectivamente la factura en la carpeta invoices
y luego, a través de la url www.example.com/invoices/invoicename.pdf
, descarga el archivo. La carpeta de facturas es de acceso público para permitir que el sistema tome el archivo.
Sin embargo, si, por ejemplo, clientA navega a www.example.com/invoices/invoicename-ownedbyclientB.pdf
, podrá descargar una factura que no le pertenece.
Ciertamente puedo hacer cosas para mitigar esto, como eliminar la factura después de la generación y las descargas para mantener la carpeta limpia, no permitir el índice en los directorios para detener la navegación fácil, cambiar el sistema para que los archivos se envíen por correo electrónico en lugar de descargarlos un directorio del sistema.
En el lado del sistema, puedo limitar fácilmente a qué personas tienen acceso, ya que están autenticadas, pero cuál sería la mejor manera de lidiar con la situación anterior. He considerado usar htaccess
o similar en este directorio para asegurar que las llamadas se originen desde el propio servidor (no he comprobado si esto es posible, solo una suposición en este momento).