Zugriff auf Ordner verweigern

Hallo zusammen.

Ich habe eine Homepage mit Joomla.
Da hab ich paar mp3 Dateien in einen Ordner rein der logischerweise "mp3" heißt.:wink:

Jetzt habe ich folgendes Problem:
Man kann ungehindert auf die Dateinen zugreifen ohne sich vorher über das Frontend von Joomla angemeldet zu haben. Sollte eigentlich nicht so sein.

Ich habe schon .htaccess ausprobiert, war aber auch nicht das richtige. Jedesmal wenn eine Datei abgespielt werden werden soll wird Benutzername und Passwort verlangt. Es sollte so sein, dass die mp3 Datei einfach abgespielt wird, ohne die Passwortabfrage über .htaccess sondern dass man nur auf die Dateien zugreifen kann, wenn man sich vorher über Joomla angemeldet hat.

Hoffe ich habs einigermaßen verständlich formuliert:P
Hat jmd ne idee wie ich das umsetzen kann?

lg
 
Moin

Sperr den Zugriff auf den Ordner über Apache.
Dann schreibst Du eine php-Datei, in der die Anmeldung über Joomla geprüft wird und anschließend die mp3-Datei ausliefert.
 
Naja, du hast das Problem, dass die Dateien zugreifbar sein sollen und gleichzeitig nicht. :)

Das lässt sich aber ganz gut über Gruppen/User organisieren, die auf dem FileSystem dann exklusiven Zugriff auf die Dateien haben.

lG
 
Naja, du hast das Problem, dass die Dateien zugreifbar sein sollen und gleichzeitig nicht. :)

Das lässt sich aber ganz gut über Gruppen/User organisieren, die auf dem FileSystem dann exklusiven Zugriff auf die Dateien haben.

lG

Das dürfte kaum möglich sein, wenn der Content über Joomla ausgeliefert werden soll, da der Webserver nunmal nur mit einem spezifischen User läuft und darauf Zugriff braucht. Die Joomla- und htaccess-Benutzer werden ja auf Dateisystem-Ebene nicht abgebildet.

Die richtige Lösung dürfte sein die Dateien ausserhalb des DocumentRoot abzulegen und von dort mittels PHP einzulesen und auszuliefern.
 
Joomla Zugriffssteuerung

In Joomla ist je nach Version eine weniger (1.5) oder umfangreiche (1.6 - 1.7) Benutzer- und Rechteverwaltung integriert.

In der Versionen 1.5 ist es möglich, Bereiche, Kategorien oder Beiträge freizugeben. Es gibt hierzu im Frontend die Benutzergruppen Öffentliches Frontend, Registriert, Autor, Editor und Publisher. Im Backend sind weitere Benutzergruppen möglich. Mehr dazu hier: http://www.joomla-home.de

In der Version 1.6 und höher gibt es eine (Access Control List), deutsch Zugriffssteuerungsliste. Mit ihr wird festgelegt, welcher Benutzer welche Objekte (Dienst oder Dateien) sehen und nutzen darf.

Hier ein sehr gutes Tutorial zu diesem Thema: Software-Lupe.de - Joomla 1.6 + 1.7 alpha ACL: das neue Rechtesystem ? Tutorial
 
Das Problem der Joomla-ACLs ist aber, dass sie nicht greifen, wenn innerhalb des Joomla-Ordners ein Ordner angelegt und mit Dateien befüllt wird. Diese Dateien kann man noch immer direkt aufrufen, wenn man den Pfad kennt, da Joomla auf diesen Zugriff keine Kontrolle ausüben kann. Daher beziehen sich die ACLs auch nur auf die Dateien, Module etc., die von Joomla direkt kommen.
 
Zugriff

Das ist sachlich einfach falsch!
Ich betreibe seit 13 Jahren verschiedene Webseiten. in den letzten sieben Jahren mit mambo/joomla, inzwischen seit drei Jahren ohne Probleme auf einem eigenen Server.

Ich gehe doch davon aus, dass eine - unter heutiger Sicht normale - Serverumgebung für Joomla eingerichtet ist. Dann gilt:

Sie können nicht auf Joomla-Ordner von aussen zugreifen. Dazu braucht es zunächst auch keine .htaccess.

Die Dateiumgebung liegt auf dem Server unterhalb von html etc. Damit kann auf die dort befindlichen Dateien nicht direkt zugegriffen werden.
Beiträge, Kontakte usw. sind in einer MySQL-Datenbank untergebracht und dort ebenfalls nicht zugänglich.

Das Ganze ist natürlich dann ad Absurdum geführt, wenn Sie jemanden den FTP-Zugang auf Ihre Joomla-Installation erlauben, dann kann derjenige natürlich auf die Ordner und die darin befindlichen Dateien zugreifen.

Gerne lasse ich mich eines anderen belehren.
 
Zuletzt bearbeitet:
Ich hab's gerade bei einer Joomla-Installation ausprobiert.

Code:
bitmuncher@bitmuncher:/home/www/meinserver.tld$ mkdir mp3
bitmuncher@bitmuncher:/home/www/meinserver.tld$ echo "aaaa" > mp3/test.mp3
bitmuncher@bitmuncher:/home/www/meinserver.tld$

Code:
bitmuncher@alpha:~> wget http://meinserver.tld/mp3/test.mp3
--2011-06-30 12:12:06--  http://meinserver.tld/mp3/test.mp3
Resolving meinserver.tld (meinserver.tld)... 123.123.123.123
Connecting to meinserver.tld (meinserver.tld)|123.123.123.123|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5 [audio/mpeg]
Saving to: `test.mp3'

100%[==========================================================>] 5           --.-K/s   in 0s      

2011-06-30 12:12:07 (349 KB/s) - `test.mp3' saved [5/5]

bitmuncher@alpha:~> cat test.mp3
aaaa
bitmuncher@alpha:~>

Wo also schützt Joomla diese Datei und vor allem wie soll es das tun, wenn der Request gar nicht über Joomla läuft, sondern der Content direkt über den Webserver ausgeliefert wird, ohne dass Joomla davon überhaupt etwas mitbekommen kann? Schliesslich schaut der Webserver einfach in's Verzeichnis, aus dem die Datei angefordert wurde, gleicht den MIME-Typ ab und liefert die Datei dann einfach aus, sofern kein Parsing durch ein Modul notwendig ist oder eine htaccess-Datei vorliegt, die den Zugriff einschränkt.

Ich betreibe nämlich auch Server seit nunmehr mehr als 13 Jahren und hab u.a. auch seit einigen Jahren diverse Joomla-Installationen laufen. In das Problem der Rechtebeschränkung für Joomla-unabhängigen Content bin ich dabei auch bereits mehrfach gerannt. Ohne entsprechende Anpassungen liefert der Webserver jede Datei aus, wenn diese in einem Ordner liegt, der nicht durch Joomla verwaltet wird, was im Fall des TE scheinbar der Fall ist.
 
Hallo

Das ist doch offensichtlich:

Wenn ich mich für Joomla entscheide, sollte ich mich an die Regeln des cms halten.

Not Found

The requested URL .../html/markt/images/stories/video/ was not found on this server.
Apache Server at meine-website.de Port 80

Und das bedeutet, dass ich Ordner entweder mit dem joomla-eigenen Mediasystem erstelle oder per FTP in meine Joomla-Installation auf dem Server erstelle.

Und in beiden Fällen die entsprechenden Dateien in diese Ordner lade - wiederum mithilfe des Joomla-Wekzeugs oder per FTP.

Seit vielen Jahren unterrichte ich in diesem Bereich und weiß deshalb, wie schwer es manchen "Schraubern" fällt, zu akzeptieren, dass ein System eben systemkonform bedient werden will. :rolleyes:
 
Zuletzt bearbeitet:
Wie bereits gesagt, hat der TE aber nunmal bereits diesen Ordner und wird ihn daher nicht mit Joomla schützen können. Man sollte also nicht vom "Soll-Zustand" ausgehen, sondern vom "Ist-Zustand". Und es IST nunmal so, dass der TE einen Ordner hat, den er nicht über Joomla angelegt hat und der somit nicht in der Verwaltung von Joomla liegt. Daher...

myself hat gesagt.:
Ohne entsprechende Anpassungen liefert der Webserver jede Datei aus, wenn diese in einem Ordner liegt, der nicht durch Joomla verwaltet wird, was im Fall des TE scheinbar der Fall ist.
 
Das ist sicherlich richtig

hat aber nichts mit der Frage von shadow96 zu tun, wenn ich diese richtig lese.

Und es IST nunmal so, dass der TE einen Ordner hat, den er nicht über Joomla angelegt hat und der somit nicht in der Verwaltung von Joomla liegt. Daher...

Das lese ich da nicht

Aber ich denke, wir sollten den User entscheiden lassen, welche der Antworten für ihn am nützlichsten ist.

Weiterhin frohes Schaffen :)
 
Zuletzt bearbeitet:
ich weiß gar nicht worum hier so ein wind gemacht wird ...

wegen .htaccess assoziere ich das ganze mal mit apache

man schreibt sich ein script das auf irgend eine weise prüft ob der user das haben darf (ist die session gültig?), was er haben will, und legt für den betreffenden ordner via htaccess einen handler an, der mit besagtem script prüft ob das was da angefragt wird, geliefert werden darf ... falls ja liefern, falls nein, 401
 
Im Prinzip hat dinfo ja Recht, dass Joomla das bereits bietet. Voraussetzung dafür ist aber, dass man die Ordner über die Joomla-Administrationskonsole anlegt und nicht einfach via FTP. Dann kann man sich jeglichen Coding-Aufwand sparen.

Sicherer sind die Dateien aber imo, wenn sie ausserhalb des DocRoot liegen und von einem Modul explizit ausgeliefert werden, womit dann allerdings wieder Coding-Aufwand verbunden ist, da die existierenden Joomla-Module ja nun nicht gerade für ihre Sicherheit bekannt sind und Joomla selbst sowas meines Wissens nach nicht bietet. Selbst wenn man das Rechtesystem von Joomla dann aushebelt, kommt der "Angreifer" nicht an die Daten. Er müsste sich also erweiterte Rechte innerhalb von Joomla verschaffen, was zumeist schwieriger ist als das Umgehen des kompletten Rechtesystems.
 
ok vielen dank für die vielen antworten. das hat mir schon mal geholfen das problem besser zu verstehen.

Ich hab jetz die Dateien einfach in Joomla Medien-Ordner rein und alles klappt wunderbar :)
 
Liebe community,

darf ich diese Frage ncoh einmal hochholen? Ich stehe vor dem gleichen Problem: ich möchte mit joomla eine neue private Seite aufsetzen, auf der ich lediglich registrierten Nutzern den Zugriff auf private Videos erlauben möchte. D.h. die Videos sollen ausschließlich via Joomla gestreamt werden können, aber es soll kein Zugriff auf die Datei als solche möglich sein.

Ich experimentiere hierzu noch ein wenig mit Joomla, und habe unter Verwendung von Joomlas Medienmanager ein neues Unterverzeichnis "/videos" erstellt (welches sich also als Unterordner von /images findet) und ebenfalls unter Verwendung des Medienmanagers Videodateien hochgeladen.

Dennoch lässt sich die Videodatei durch Eingabe des korrekten Pfades in einen Browser (also z.B. "www.meinepage.de/joomla/images/videos/beispielvideo.m4v") aufrufen -- und dann eben herunterladen.

Wie kann ich dies verhindern?

Ich hatte die Diskussion in diesem thread so verstanden, daß solange ich ich das Anlegen des Verzeichnisses und Hochladen der Dateien aus dem Joomla-Backend heraus mache, ein Schutz vorliegt. Das scheint ja aber doch nciht der Fall zu sein? Oder ich habe irgendetwas falsch gemacht.

Darüber hinaus wäre das Hochladen weiterer Videofiles via Backend zukünftig keine Möglichkeit für mich, weil ich (aufgrund shared Webspace und scheinbarere Beschränkungen durch meien provider) nur max. 10MB-Dateien hochladen kann. D.h. ich muss größere Files ohnehin via ftp auf den Server bringen.

Im voraus herzlichen Dank für jeden Hinweis!
 
Du könntest dir eine htaccess-Datei anlegen, die den direkten Zugriff auf die Dateien unterbindet, so dass diese von Joomla ausgeliefert werden müssen.
 
Zurück
Oben