Ich erstelle eine Website, auf der registrierte Benutzer Dateien hochladen können. Diese Dateien werden dann über Apache geliefert. Nur angemeldete Benutzer sollten auf diese Dateien zugreifen können.Sicherer Zugriff auf statische Medien in einer Django-Site
Ich habe this page gelesen, aber es scheint, dass die Leute sich zweimal anmelden müssen, um sowohl auf die Site als auch auf das Medium zugreifen zu können, wobei sie jedes Mal eine andere Art von Login-Box verwenden.
Gibt es einen Weg dazu oder gibt es eine andere Möglichkeit, den Zugriff auf statische Medien einzuschränken, die von Apache mit Hilfe der Django-Authentifizierungsdatenbank bedient werden?
Ich benutze mod_python.
EDIT: Wie kann ich diese Lösung endete nach Van Gale Antwort zu lesen und this:
- zu WSGI Switched.
- mod_xsendfile installiert
- Verschoben alle öffentlichen Mediendateien in einem Unterordner in/media/public
- Added Zugang zum öffentlichen Ordner ein Alias / Medien/Öffentlichkeit /var/www.../media/public mit
- Hinzugefügt WSGIScriptAlias / media/protected//var/www.../apache/django.wsgi (gleiche Behandlungsroutine wie für den Rest der Seite)
- Added XSendFile Auf und XSendFileAllowAbove Auf
- zum Django app ich hinzugefügt eine urlconf für/media/protected was im Grunde was ist here, nur für meine auth Einreichungssystem. Es behandelt URLs wie/media/protected/GROUP_ID/file, so dass nur Mitglieder der GROUP die Dateien herunterladen können.
Das andere mögliche Problem mit dem in den Django-Dokumenten beschriebenen Ansatz ist, dass es die grundlegende Authentifizierung zu verwenden scheint - das sendet Passwörter in Base64-codiertem Klartext, ist also nicht sicher, es sei denn, Sie verwenden auch SSL für alle Anfragen. –