Estoy creando un sitio donde los usuarios registrados pueden subir archivos. Esos archivos se sirven a través de Apache. Solo los usuarios que hayan iniciado sesión deberían poder acceder a esos archivos.Acceso seguro a medios estáticos en un sitio de Django
He leído this page pero parece que las personas tendrían que iniciar sesión dos veces para acceder tanto al sitio como a los medios, cada vez usando un tipo diferente de cuadro de inicio de sesión.
¿Hay alguna forma de evitar esto o hay alguna otra forma de limitar el acceso a medios estáticos servidos por Apache usando la base de datos de autenticación de Django?
Estoy usando mod_python.
EDITAR: ¿Cómo terminé resolver esto después de leer la respuesta y this de Van Gale:
- cambió a WSGI.
- Instalado mod_xsendfile
- Movido todos los archivos multimedia en una subcarpeta pública en/media/pública
- acceso añadido a la carpeta pública utilizando un alias/media//var/www.../media/public pública
- WSGIScriptAlias Añadido/media/protected//var/www.../apache/django.wsgi (el mismo controlador como para el resto del sitio)
- Agregado XSendFile On y XSendFileAllowAbove en
- para la aplicación de Django añadí un urlconf para/media/protected que hace básicamente lo que es here, solo modificado para mi auth sistema de entrada Maneja URL como/media/protected/GROUP_ID/file para que solo los miembros del GROUP puedan descargar los archivos.
El otro problema posible con el enfoque descrito en los documentos de Django es que parece estar utilizando autenticación básica; esto envía contraseñas en texto sin cifrar base64, por lo que no es seguro a menos que también use SSL para todas las solicitudes. –