Por seguridad, voy a mover una colección de archivos y carpetas fuera de la raíz web en un servidor apache, y luego los mostraré dinámicamente. Esto parece mejor que 2 alternativas:¿Cómo se sirven documentos desde fuera de la raíz web usando PHP?
- dejarlos web accesible y simplemente crear una página de inicio de sesión php que consigue antepone a cada archivo. El problema es que no son todos archivos php, y no puedo anteponer un archivo de inicio de sesión php a un pdf, imagen, etc.
- Déjalos accesibles a través de la web y use la autenticación HTTP para restringir el acceso a todo el directorio. Pero eso introduce problemas que incluyen contraseñas sin formato, ningún método de cierre de sesión elegante, etc.
Así que volvemos a tenerlos fuera de la raíz web pero les brindamos un servicio dinámico. El problema que tengo es que, dado que son todos tipos de archivos diferentes (scripts php, txt, pdf, jpg), no estoy seguro de si debo usar include()
o readfile()
. Y me encuentro con problemas al enviar los encabezados adecuados para cada archivo para que el navegador los muestre correctamente.
¿Me está faltando otra solución mágica? ¿Hay algún marco que me haya eludido que maneje el servicio de archivos dinámicos y encabezados?
(FYI estoy corriendo Linux, Apache & PHP en un servidor compartido)
Guau, estás tomando un problema fácil y lo estás convirtiendo en uno difícil. –
@Dietrich ¿cuál sería una solución fácil entonces? –
@Pekka: Autenticación HTTP Digest, indique a los usuarios que cierren sus navegadores para cerrar la sesión. –