You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users-de@httpd.apache.org by Philon Terving <ph...@gmx.net> on 2006/10/17 18:05:13 UTC
PHP-Auth an Apache übergeben
Hallo Leute!
eine Sache die mir seit einigen Tagen den Kopf zerbricht... ich komme
aber irgendwie nicht zu einer sinnvollen Lösung.
Ich habe hier ein PHP-CMS laufen. Soweit alles fein und prima. Jetzt
habe ich jedoch ein Verzeichnis mit Logfiles die dort reingeneriert werden.
Problem: Auf dieses Verzeichnis sollen im CMS authentifizierte Benutzer
zugreifen. Machen wir es komplizierter: Jeder User soll NUR auf sein
Logfile/LogDir zugreifen können.
Es müsste also eine Zugriffsprüfung auf untersch. Verzeichnisse
stattfinden. Da die Logs wegen Links und Grafiken nicht verändert werden
können, kann ich sie nicht einfach in PHP umschreiben. Ich kann auch
kein PHP-Header in jedem File hinzufügen, der eine Prüfung vornimmt.
Ich dachte jetzt also an mod_auth_sql. Nur wie könnte ich von PHP heraus
die Authentifizierung sinnvoll an den Apache weitergeben? Das Passwort
sollte ja im Idealfall nur einmal beim Login angegeben werden müssen.
Einen vielleicht auch funktionierenden PHP-Proxy konnte ich nicht
finden, evlt. auch überdimensioniert für Handling von Grafiken etc!?
Gedanken?
Vielen Dank,
Philon
--------------------------------------------------------------------------
Apache HTTP Server Mailing List "users-de"
unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------
Re: PHP-Auth an Apache übergeben
Posted by James Blond <jb...@gmail.com>.
On 10/17/06, Philon Terving <ph...@gmx.net> wrote:
> Problem: Auf dieses Verzeichnis sollen im CMS authentifizierte Benutzer
> zugreifen. Machen wir es komplizierter: Jeder User soll NUR auf sein
> Logfile/LogDir zugreifen können.
Was ist mit der simplen .htaccess Lösung pro Verzeichnis?
Andernfalls gibt es noch eine Lösung, mit PHP die Auth vom Apache zu nutzen
Bei include page könntest Du natürlich auch das Verzeichnis auslesen...
ich hoffe doch das Du das Array $users auch aus einer DB befüllen kannst.
Und dann nicht vergessen die Datei als index.php zu speichern ;-)
Gruß
Mario
<?php
//php5 Anpassung
$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
//
$users = array(
"user"=>"passwort",
"anonyme"=>"devine"
);
$auth_text = "Du darfst hier nicht rein!";
if(!(empty($PHP_AUTH_USER) || empty($PHP_AUTH_PW)) &&
$PHP_AUTH_PW==$users[$PHP_AUTH_USER]){
include("page.php");
}
else{
header("www-authenticate: basic realm=\"$auth_text\"");
header("http/1.0 401 unauthorized");
}
?>
--------------------------------------------------------------------------
Apache HTTP Server Mailing List "users-de"
unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------