Seite 1 von 1

Login-Status via htaccess prüfen

Verfasst: Mo 29. Sep 2014, 14:46
von CinKon
Hi,

ich komme leider bei einem recht kritischen Problem nicht weiter.
Bei einer Website sollen Dokumente, die nur für eingeloggte Benutzer gedacht sind, auch nur erreichbar sein, wenn man als Frontend-/Backenduser eingeloggt ist, also wenn

Code: Alles auswählen

$auth->auth["uid"] != "nobody"
Ansonsten kann man ja jedes Dokument im Upload-Folder aufrufen, sofern die URL bekannt ist.
Ich habe hier jetzt als sicherste Methode folgende erdacht:

.htaccess im betreffenden Upload-Ordner:

Code: Alles auswählen

Options +FollowSymLinks  
RewriteEngine on  
RewriteRule ^(.*)$ /front_content.php?idart=578&file=/upload/protected/$1 [NC]
Damit wird erstmal prinzipiell der Zugriff auf alle Dokumente dieses Ordners verhindert.

Und ein Artikel der das Modul zum prüfen des Login-Status anthält:

Code: Alles auswählen

<?php

	if ($auth->auth["uid"] == "nobody") {
		echo 'denied';
	} else {
		readfile($_REQUEST['file']);
	}

?>
Problem dabei ist, dass beim Aufruf via htaccess immer "nobody" ausgegeben wird, obwohl man als Frontend-User eingeloggt ist...
Wie lässt sich das lösen?

Oder gibt es einen besseren Workaround? Das ganze über ein Modul zu lösen, indem man die Dokumente über einen Artikel verlinkt ("front_content.php?idart=34&downloadfile=/upload/protected/text.jpg", oder in der Art), macht meiner Meinung nach keinen Sinn, da man im Zweifelsfall die Dokumente ja trotzdem über die direkte URL aufrufen kann...

Schöne Grüße

Lars

Re: Login-Status via htaccess prüfen

Verfasst: Mo 29. Sep 2014, 16:21
von Zuschauer
Hallo Lars,

die Lösung ist eine Kombination der beiden von dir genannten Möglichkeiten:
- .htaccess verbietet direkten Zugriff
- Modul liefert die Datei aus (ist von der .htaccess nicht betroffen und prüft eigenständig die Berechtigung)

Gruß
Zuschauer

Re: Login-Status via htaccess prüfen

Verfasst: Di 30. Sep 2014, 08:35
von CinKon
Ja, habs nun erstmal so lösen müssen. An sich funktioniert das ja auch, wenn die verlinkten Dateien via CMS_LINKEDITOR angegeben werden, dann kann ich über das Modul mit den Links ja machen was ich will.
Werden die Dateien vom Redakteur aber über ein normales CMS_HTML-Feld verlinkt, kann ich die ja nicht umschreiben...

Re: Login-Status via htaccess prüfen

Verfasst: Di 30. Sep 2014, 12:00
von Oldperl
CinKon hat geschrieben:Werden die Dateien vom Redakteur aber über ein normales CMS_HTML-Feld verlinkt, kann ich die ja nicht umschreiben...
Auch da hilft eine .htaccess, diese muss die eingehende Abfrage der Datei abfangen und auf eine PHP-Datei, oder eine Frontendseite mit Datei-Modul, umleiten. Dieses wertet dann die Request-URL aus und liefert, wenn erlaubt, die entsprechende Datei aus.

Gruß aus Franken

Ortwin

Re: Login-Status via htaccess prüfen

Verfasst: Di 30. Sep 2014, 12:26
von CinKon
Oldperl hat geschrieben:
CinKon hat geschrieben:Werden die Dateien vom Redakteur aber über ein normales CMS_HTML-Feld verlinkt, kann ich die ja nicht umschreiben...
Auch da hilft eine .htaccess, diese muss die eingehende Abfrage der Datei abfangen und auf eine PHP-Datei, oder eine Frontendseite mit Datei-Modul, umleiten. Dieses wertet dann die Request-URL aus und liefert, wenn erlaubt, die entsprechende Datei aus.

Gruß aus Franken

Ortwin

Genau das war mein Ansatz ;)
Wie im Hauptpost aber zu lesen, funktioniert das leider nicht, da das Script IMMER $auth->auth["uid"] = "nobody" ausgibt, also den Login-User, der über die htaccess kommt, nicht erkennt.