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
--------------------------------------------------------------------------