Schutz vor unberechtigtem Dateizugriff (mod_xfiles)
- MarkusR
- Handbuchversteher
- Beiträge: 7362
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 934 Mal
- Kontaktdaten:
Schutz vor unberechtigtem Dateizugriff (mod_xfiles)
Bis irgendwann mal das Dateimanagement von ConPresso auch eine Rechteverwaltung bekommt, hier ein Schutz für Bilder und Dateien, die für eine geschlossene Rubrik hochgeladen werden.
Einfach alle Dateien ins Verzeichnis _data hochladen!
_data/.htaccess
_data/download.php
_data/forbidden.png
Technik:
Mittels einer htaccess-Datei werden alle Aufrufen von nicht-PHP-Dateien auf ein Script download.php umgeleitet.
Dieses prüft, ob die Datei von ConPresso gehandelt wird und wenn ja, ob es eine geschlossene Rubrik ist. Trifft nichts davon zu, dann wird die Datei ausgegeben.
Ist es eine geschlossene Rubrik, dann wird geprüft, ob der eingeloggte User (bzw. seine Gruppe) diese Rubrik auch sehen darf. Falls ja, wird die Datei ausgegben, falls nein, wird eine Ersatzgrafik ausgegeben (die natürlich nach Belieben durch eine andere PNG-Datei ersetzt werden kann).
Feedback erwünscht!
Einfach alle Dateien ins Verzeichnis _data hochladen!
_data/.htaccess
_data/download.php
_data/forbidden.png
Technik:
Mittels einer htaccess-Datei werden alle Aufrufen von nicht-PHP-Dateien auf ein Script download.php umgeleitet.
Dieses prüft, ob die Datei von ConPresso gehandelt wird und wenn ja, ob es eine geschlossene Rubrik ist. Trifft nichts davon zu, dann wird die Datei ausgegeben.
Ist es eine geschlossene Rubrik, dann wird geprüft, ob der eingeloggte User (bzw. seine Gruppe) diese Rubrik auch sehen darf. Falls ja, wird die Datei ausgegben, falls nein, wird eine Ersatzgrafik ausgegeben (die natürlich nach Belieben durch eine andere PNG-Datei ersetzt werden kann).
Feedback erwünscht!
- Dateianhänge
-
- forbidden.png (14.86 KiB) 17917 mal betrachtet
-
- cpo4_mod_xfiles.zip
- (17.82 KiB) 761-mal heruntergeladen
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
- balu
- ConPresso-Entwickler
- Beiträge: 1748
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 81 Mal
- Danksagung erhalten: 133 Mal
Hi Markus,
schöne Idee, zu prüfen, ob die Datei in einer geschlossenen Rubrik verwendet wird.
Aufgefallen ist mir auf den ersten Blick, dass da manchmal $minetype und manchmal $mimetype verwendet wird. Ich habe aber noch nicht geschaut, ob das ein Tippfehler oder Absicht ist .
Die _data/index.php schlägt übrigens einen ähnliches Mechanismus vor. Wir hatten das als "Prototyp" mal für einen Kunden umgesetzt.
Dort werden Dateien geprüft, die mit "secret_" anfangen (oder etwas anderes, je nach Geschmack). Diese werden dann nur ausgeliefert, wenn ein Benutzer eingeloggt ist.
Ansonsten wird ein "HTTP/1.0 403 Forbidden"-Header geschickt.
Allerdings treibe ich dort nicht so viel Aufwand mit Browser-Erkennung, usw. Leider ist das bei uns nirgendwo im Einsatz, so dass ich bisher auch keine Erfahrungen mit dem Code habe, ausser den einfachen Tests, die man so machen kann.
Balu
schöne Idee, zu prüfen, ob die Datei in einer geschlossenen Rubrik verwendet wird.
Aufgefallen ist mir auf den ersten Blick, dass da manchmal $minetype und manchmal $mimetype verwendet wird. Ich habe aber noch nicht geschaut, ob das ein Tippfehler oder Absicht ist .
Die _data/index.php schlägt übrigens einen ähnliches Mechanismus vor. Wir hatten das als "Prototyp" mal für einen Kunden umgesetzt.
Dort werden Dateien geprüft, die mit "secret_" anfangen (oder etwas anderes, je nach Geschmack). Diese werden dann nur ausgeliefert, wenn ein Benutzer eingeloggt ist.
Ansonsten wird ein "HTTP/1.0 403 Forbidden"-Header geschickt.
Allerdings treibe ich dort nicht so viel Aufwand mit Browser-Erkennung, usw. Leider ist das bei uns nirgendwo im Einsatz, so dass ich bisher auch keine Erfahrungen mit dem Code habe, ausser den einfachen Tests, die man so machen kann.
Balu
Bartels.Schöne
ConPresso Support & Development
ConPresso Support & Development
- MarkusR
- Handbuchversteher
- Beiträge: 7362
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 934 Mal
- Kontaktdaten:
Tippfehlerbalu hat geschrieben:Aufgefallen ist mir auf den ersten Blick, dass da manchmal $minetype und manchmal $mimetype verwendet wird. Ich habe aber noch nicht geschaut, ob das ein Tippfehler oder Absicht ist .
Habe das Archiv oben aktualisiert...
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
- hscha
- ConPresso-Experte
- Beiträge: 714
- Registriert: 22.02.2006 22:00
- Wohnort: Berlin
- Hat sich bedankt: 217 Mal
- Danksagung erhalten: 26 Mal
- Kontaktdaten:
Hallo Markus,
ich habe das Mod auf zwei Sites ausprobiert: Auf einer läufts, auf einer anderen nicht.
Auf dieser läufts:
http://www.gokinkel.cidsnet.de/cms/_dat ... ntwurf.pdf
Beim Klick auf diesen Link wirst du ohne eingeloggt zu sein, das "forbidden.png" zu sehen bekommen. Alle anderen Dateien in nicht geschlossenen Rubriken lassen sich anzeigen. Auch die Image-Dateien, die im _data-Verzeichnis liegen, werden angezeigt.
http://www.gokinkel.cidsnet.de
Auf einer anderen meiner Sites läufts leider nicht. Der Zugriff auf die Image-Dateien im _data-Verzeichnis ist nicht mehr möglich. Ich weiß leider noch nicht, woran das liegt (siehe Screenshot)!
Grüße von
Horst
ich habe das Mod auf zwei Sites ausprobiert: Auf einer läufts, auf einer anderen nicht.
Auf dieser läufts:
http://www.gokinkel.cidsnet.de/cms/_dat ... ntwurf.pdf
Beim Klick auf diesen Link wirst du ohne eingeloggt zu sein, das "forbidden.png" zu sehen bekommen. Alle anderen Dateien in nicht geschlossenen Rubriken lassen sich anzeigen. Auch die Image-Dateien, die im _data-Verzeichnis liegen, werden angezeigt.
http://www.gokinkel.cidsnet.de
Auf einer anderen meiner Sites läufts leider nicht. Der Zugriff auf die Image-Dateien im _data-Verzeichnis ist nicht mehr möglich. Ich weiß leider noch nicht, woran das liegt (siehe Screenshot)!
Grüße von
Horst
- MarkusR
- Handbuchversteher
- Beiträge: 7362
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 934 Mal
- Kontaktdaten:
Da zwangsläufig alle Dateien geprüft werden müssen, wird bei Fehlern (durch Script oder Server) eben nichts mehr angezeigt.
Wenn es keine Meldungen gibt, dann muß man ins Logfile schauen...
Wenn es keine Meldungen gibt, dann muß man ins Logfile schauen...
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
-
- ConPresso-Experte
- Beiträge: 547
- Registriert: 04.07.2007 17:12
- Hat sich bedankt: 27 Mal
- Danksagung erhalten: 7 Mal
Hallo,
bin gerade auf diesen alten Beitrag gestoßen, da ich genau das brauche.
Habe es auch gleich mal eingebaut aber geht leider nicht. Der Zugriff auf die Dateien in _data ist immer noch möglich.
Muss ich dem _data Verzeichnis besondere Recht geben (CHMOD)?
Oder liegt es daran, dass meine CPO Version oder der Browser zu neu sind?
(cpo 4.1.6 und aktueller FF)
Gruß,
dutch
bin gerade auf diesen alten Beitrag gestoßen, da ich genau das brauche.
Habe es auch gleich mal eingebaut aber geht leider nicht. Der Zugriff auf die Dateien in _data ist immer noch möglich.
Muss ich dem _data Verzeichnis besondere Recht geben (CHMOD)?
Oder liegt es daran, dass meine CPO Version oder der Browser zu neu sind?
(cpo 4.1.6 und aktueller FF)
Gruß,
dutch
- MarkusR
- Handbuchversteher
- Beiträge: 7362
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 934 Mal
- Kontaktdaten:
Werden ggf. htaccess-Dateien nicht unterstützt?
Oder hast Du die .htaccess-Datei vielleicht nicht auf den Server geladen, weil Dein System diese nicht anzeigt?
Oder hast Du die .htaccess-Datei vielleicht nicht auf den Server geladen, weil Dein System diese nicht anzeigt?
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
- MarkusR
- Handbuchversteher
- Beiträge: 7362
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 934 Mal
- Kontaktdaten:
Kannst einfach mal eine andere dorthin laden, z.B.
und dann eine Datei ohne führendes www. in der URL aufrufen. Das sollte dann eigentlich automatisch auf die WWW-URL umgeleitet werden.
Nutze ich sowie auf den meisten Seiten um Session-Probleme zu vermeiden.
Code: Alles auswählen
RewriteEngine on
# bitte mit www.
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
Nutze ich sowie auf den meisten Seiten um Session-Probleme zu vermeiden.
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
-
- ConPresso-Experte
- Beiträge: 547
- Registriert: 04.07.2007 17:12
- Hat sich bedankt: 27 Mal
- Danksagung erhalten: 7 Mal
Hallo Markus,
der Provider hat mir bestätigt, dass .htaccess auf dem Server läuft aber mit Einschränkungen. Für mich hörte es sich so an, dass .htaccess Dateien nur im root des Servers laufen...
Daraufhin haben die die .htaccess verändert, um zum Ziel zu kommen, aber das Ergebnis funktioniert leider ebenso wenig. Die verlinkten PDFs lassen sich immer noch ohne login mit einem deep-link öffnen.
Habe die Lösung auch mal auf einer ganz anderen Site eingebaut (anderer Provider). Aber auch da geht es nicht. Wird einfach ignoriert...
Gibt es evtl. noch eine denkbare Alternative zur Sicherung?
Ich, als naiver CPO-user , war eigentlich davon ausgegangen, dass alles, was in einem geschlossenen Bereich online geht, auch geschützt ist, also inkl. verlinkter Dateien. Die geschützten Bereiche werden ja meistens genau dafür benutzt, um Dokumente nur einer bestimmten Gruppe zugänglich zu machen.
Im Nachhinein natürlich logisch, dass dem nicht so ist, da alles in _data liegt.
Wäre es da nicht sinnvoll, dass CPO für geschlossene Rubriken ein separates _data Verzeichnis anlegt, oder denke ich wieder zu naiv?
Grüße,
dutch
der Provider hat mir bestätigt, dass .htaccess auf dem Server läuft aber mit Einschränkungen. Für mich hörte es sich so an, dass .htaccess Dateien nur im root des Servers laufen...
Daraufhin haben die die .htaccess verändert, um zum Ziel zu kommen, aber das Ergebnis funktioniert leider ebenso wenig. Die verlinkten PDFs lassen sich immer noch ohne login mit einem deep-link öffnen.
Habe die Lösung auch mal auf einer ganz anderen Site eingebaut (anderer Provider). Aber auch da geht es nicht. Wird einfach ignoriert...
Gibt es evtl. noch eine denkbare Alternative zur Sicherung?
Ich, als naiver CPO-user , war eigentlich davon ausgegangen, dass alles, was in einem geschlossenen Bereich online geht, auch geschützt ist, also inkl. verlinkter Dateien. Die geschützten Bereiche werden ja meistens genau dafür benutzt, um Dokumente nur einer bestimmten Gruppe zugänglich zu machen.
Im Nachhinein natürlich logisch, dass dem nicht so ist, da alles in _data liegt.
Wäre es da nicht sinnvoll, dass CPO für geschlossene Rubriken ein separates _data Verzeichnis anlegt, oder denke ich wieder zu naiv?
Grüße,
dutch
- MarkusR
- Handbuchversteher
- Beiträge: 7362
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 934 Mal
- Kontaktdaten:
Du denkst da schon richtig, aber das macht kein CMS so. Bei Forensystemen wie phpBB ist das dagegen üblich, dafür hat man aber keine Freiheiten wie im CMS.
CMS-Systeme sind ja in der Regel dazu da Informationen zu veröffentlichen, daher sind nicht-öffentliche Dinge nicht das primäre Augenmerk und es wird meist darauf vertraut, dass, sobald etwas nicht mehr durch Links erreichbar ist, es nicht mehr als öffentlich gilt. Und die Texte können durch Sperrung ja auch unerreichbar gemacht werden, das gilt aber nicht für die Medien aus _data.
Wer Wert auf Sicherheit legt, der wird einen Server benutzen, der Dinge wie mod_rewrite uneingeschränkt unterstützt.
Ein separates Verzeichnis bringt übrigens auch nichts, wenn das genauso ungeschützt ist.
Ich warte derzeit auf einen Kundenauftrag, der eine Mediendatenbank benötigt, bei der nur eingeloggte User je nach Berechtigung bestimmte Dateien herunterladen können. Dort plane ich ein verändertes Upload-Verfahren mit einem entsprechenden Dateischutz. Aber auch das wird nicht ohne mod_rewrite gehen. Und der Auftrag ist noch nicht erteilt.
CMS-Systeme sind ja in der Regel dazu da Informationen zu veröffentlichen, daher sind nicht-öffentliche Dinge nicht das primäre Augenmerk und es wird meist darauf vertraut, dass, sobald etwas nicht mehr durch Links erreichbar ist, es nicht mehr als öffentlich gilt. Und die Texte können durch Sperrung ja auch unerreichbar gemacht werden, das gilt aber nicht für die Medien aus _data.
Wer Wert auf Sicherheit legt, der wird einen Server benutzen, der Dinge wie mod_rewrite uneingeschränkt unterstützt.
Ein separates Verzeichnis bringt übrigens auch nichts, wenn das genauso ungeschützt ist.
Ich warte derzeit auf einen Kundenauftrag, der eine Mediendatenbank benötigt, bei der nur eingeloggte User je nach Berechtigung bestimmte Dateien herunterladen können. Dort plane ich ein verändertes Upload-Verfahren mit einem entsprechenden Dateischutz. Aber auch das wird nicht ohne mod_rewrite gehen. Und der Auftrag ist noch nicht erteilt.
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
-
- ConPresso-Experte
- Beiträge: 547
- Registriert: 04.07.2007 17:12
- Hat sich bedankt: 27 Mal
- Danksagung erhalten: 7 Mal
Mit dem separaten Verzeichnis meinte ich eigentlich natürlich auch ein geschütztes, in das man die uploads lädt, die in geschlossenen Bereichen verlinkt sind.
Naja, wie auch immer. Das bedeutet also, dass ich auf sehr vielen Standard-Servern keine wirklich sicheren geschlossenen Bereiche anlegen kann?
Aktuell habe ich das Problem, dass ein PDF, das in einem geschlossenen Bereich verlinkt ist, auch über Google gefunden wird... was den Kunden natürlich nicht erfreut
Gruß
dutch
Naja, wie auch immer. Das bedeutet also, dass ich auf sehr vielen Standard-Servern keine wirklich sicheren geschlossenen Bereiche anlegen kann?
Aktuell habe ich das Problem, dass ein PDF, das in einem geschlossenen Bereich verlinkt ist, auch über Google gefunden wird... was den Kunden natürlich nicht erfreut
Gruß
dutch
-
- ConPresso-Experte
- Beiträge: 547
- Registriert: 04.07.2007 17:12
- Hat sich bedankt: 27 Mal
- Danksagung erhalten: 7 Mal
Das hier ist übrigens die angepasste .htaccess des Providers, die der in root gelegt hat, die aber, wie gesagt, auch nicht funzt:
Code: Alles auswählen
<Files .htaccess>
order allow,deny
deny from all
</Files>
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^mcfworld\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.mcfworld\.com$
RewriteRule ^cms\/_data\/\/?(.*)$ "download.php?filename=$1" [R=301,L]