Buduję witrynę, w której zarejestrowani użytkownicy mogą przesyłać pliki. Pliki te są następnie przesyłane za pośrednictwem Apache. Tylko zalogowani użytkownicy powinni mieć dostęp do tych plików.Zabezpieczony dostęp do statycznego nośnika w witrynie Django
Przeczytałem this page, ale wydaje się, że ludzie musieliby się zalogować dwukrotnie, aby uzyskać dostęp do strony i mediów, za każdym razem przy użyciu innego typu pola logowania.
Czy istnieje sposób wokół tego, czy jest jakiś inny sposób, aby ograniczyć dostęp do mediów statycznych obsługiwanych przez Apache przy użyciu bazy danych uwierzytelniania Django?
Używam mod_pythona.
EDIT: Jak skończyło się na rozwiązywaniu tego po przeczytaniu odpowiedzi Van Gale i this:
- Switched do WSGI.
- zainstalowana mod_xsendfile
- Przeniesiony wszystkie pliki multimedialne publicznego do podkatalogu w/media/publicznym
- Dodany dostęp do folderu publicznego przy użyciu aliasu/media//var/www.../media/public publicznego
- dodano WSGIScriptAlias / media/protected//var/www.../apache/django.wsgi (tak samo jak w przypadku obsługi reszty miejscu)
- dodano XSendFile On i XSendFileAllowAbove na
- do aplikacji Django i dodanej urlconf dla/media/protected, który w zasadzie to, co jest here, zmodyfikowany tylko dla mojego auth system przynależności. Obsługuje adresy URL, takie jak/media/protected/GROUP_ID/file, dzięki czemu tylko członkowie GRUPY mogą pobierać pliki.
Inny możliwy problem z podejściem opisanym w docs Django jest to, że wydaje się być przy użyciu uwierzytelniania podstawowego - to wysyła hasła w postaci zwykłego tekstu zakodowane Base64, więc nie jest bezpieczny, chyba że również używać SSL dla wszystkich żądań. –