.htaccess + authentifizierung über db

  • Folgende Tatsachen: Ich möchte ein Verzeichnis mit .htaccess vor unerlaubten zugriffen schützen. Auf der anderen Seite habe ich ein Usermanagment über ein DB und PHP.

    Frageee: Wie kann ich die zwei Verbinden? D.h. wie kann ich es anstellen, daß wenn sich ein User über mein PHP-Skript authentifiziert hat, er gleichzeitig auch von .htaccess durchgelassen wird ohne ein zweites mal ein Passwort eingeben zu müssen?

    Eigentlich möchte ich ja auch nicht, daß er das Paßwort für .htaccess kennt, damit er nicht direkt (ohne das PHP-Skript) auf das Verzeichnis zugreift. Die Idee, die ich hätte wäre, daß wenn er sich eingeloggt hat, dann das PHP-Skript die (universellen - für alle user gleichen Daten) an .htaccess schickt (?) ... geht das irgendwie so?

    Thanx 4 help.

    *** Make it idiot proof, and someone will build a better idiot. ***

  • Zitat von maciek

    Eigentlich möchte ich ja auch nicht, daß er das Paßwort für .htaccess kennt, damit er nicht direkt (ohne das PHP-Skript) auf das Verzeichnis zugreift. Die Idee, die ich hätte wäre, daß wenn er sich eingeloggt hat, dann das PHP-Skript die (universellen - für alle user gleichen Daten) an .htaccess schickt (?) ... geht das irgendwie so?

    Geht's Dir darum, dass der Benutzer bestimmte PHP-Seiten nur benutzen darf, wenn er sich vorher eingeloggt hat? Schau Dir PEAR::Auth an, das ist bei mir im Einsatz und funktioniert ausgezeichnet. // Rene

  • zunächst mal danke für die Tipps. Allerdings ...

    Das ganze soll auf einem durchschnittlichen Server laufen sollen (z.B. Inode) oder sonst wo. Am besten unter PHP 4.0 oder 4.1 Zusatzmodule kann ich zwar bei mir installieren, aber bis die Fritzen von irgendeinem Provider das gecheckt haben ... das ist immer ein Problem. Daher würde ich gern die Finger von irgendwelchen Zusatzmodulen lassen.

    Der Ansatz mit dem selber schreiben des .htaccess bzw. .htpasswd ist ja schon mal hilfreich. An so was hab ich auch schon gedacht. Allerdings ... das Skript funkt jetzt nicht wirklich und ich hab jetzt keine Zeit mehr, mich heute noch damit zu spielen.

    Meine Kernfrage ist allerdings noch nicht beantwortet: Wenn ich mein eigenes UserManagement habe, mich über dieses UserManagement authentifziert habe, dann auf ein mit .htaccess geschütztes Verzeichnis zugreifen möchte, zu dem ich mit dem gleichen usernamen und password Zugriff habe, wie zum Usermanagement ... gibt es dann eine Möglichkeit meine Daten (username + password) an den Server zu schicken, sodaß ich diese nicht noch 1x eintippen muß?

    *** Make it idiot proof, and someone will build a better idiot. ***

  • Zitat von maciek

    Das ganze soll auf einem durchschnittlichen Server laufen sollen (z.B. Inode) oder sonst wo. Am besten unter PHP 4.0 oder 4.1 Zusatzmodule kann ich zwar bei mir installieren, aber bis die Fritzen von irgendeinem Provider das gecheckt haben ...

    PEAR ist eine Sourcecode-Bibliothek, kein Modul! Du spielt also einfach zusätzlich zu Deinen .php-Dateien ein paar von PEAR ein -- fertig.

    PEAR::Auth ist ein (mächtigerer) Ersatz für .htaccess, keine Ergänzung. Wofür genau brauchst Du .htaccess, außer für die Benutzerauthentifizierung?

  • Zitat von rck

    PEAR ist eine Sourcecode-Bibliothek, kein Modul! Du spielt also einfach zusätzlich zu Deinen .php-Dateien ein paar von PEAR ein -- fertig.


    ok, mein Fehler. Allerdings brauch ich eigentlich nur etwas ganz einfaches (es sollte zumindest einfach sein) und mich da jetzt mit der ganzen Bibliothek zu spielen erscheint mir da ein bissi wie mit einer Kanone auf Spatzen zu schießen.

    Zitat von rck


    PEAR::Auth ist ein (mächtigerer) Ersatz für .htaccess, keine Ergänzung. Wofür genau brauchst Du .htaccess, außer für die Benutzerauthentifizierung?


    ich hab mir jetzt einen user franzi mit dem passwort franzi erstellt. Mit dem funktioniert das .htaccess + .htpasswd auf meinem Order "xyz".

    Die Daten eines LogIns am Server - hab ich jetzt rausgefunden - kann man mit $_SERVER['PHP_AUTH_USER'] und $_SERVER['PHP_AUTH_PW'] rauslesen. D.h. wenn ich mich über das Server-LogIn mit "franzi" + "franzi" anmelde, sehe ich über die zwei Servervariablen diese Daten.

    Ich kann auch die zwei Variablen setzen. Allerdings wenn ich mich zuerst über mein Skript einlogge, die Variablen setze, dann sehe zwar daß sich die $_SERVER-Variablen geändert haben, allerdings verlangt der Browser noch immer eine Authentifikation wenn ich auf den Ordner "xyz" zugreifen möchte. Weiß jemand woran das liegen könnte?

    *** Make it idiot proof, and someone will build a better idiot. ***

  • ich weiß nicht, ob du das nicht eh weißt, aber...
    das password und das login kannst du über eine url weitergeben: z.b. http://franzilogin:franzipassw@www.irgendwas.bla

    Otto: Apes don't read philosophy. - Wanda: Yes they do, Otto, they just don't understand
    Beleidigungen sind Argumente jener, die über keine Argumente verfügen.
    «Signanz braucht keine Worte.» | «Signanz gibts nur im Traum.» 

    Das neue MTB-Projekt (PO, Wiki, Mitschriften, Ausarbeitungen, Folien, ...) ist online
    http://mtb-projekt.at

  • Zitat von maciek

    ok, mein Fehler. Allerdings brauch ich eigentlich nur etwas ganz einfaches (es sollte zumindest einfach sein) und mich da jetzt mit der ganzen Bibliothek zu spielen erscheint mir da ein bissi wie mit einer Kanone auf Spatzen zu schießen.

    Mag sein. PEAR bietet jedenfalls noch einen Haufen weiterer Möglichkeiten, zB für's Formulardesign (Felder definieren inklusive automatischem Client-seitigem Check, zB auf gültige Länge, ggf. mit Fallback auf Serverseitigen check -- PEAR::HTML_QuickForm), oder für die einheitliche Datenbankanbindung (PEAR::DB), etc., etc.

    Ich hab mir für mein Projekt viele, viele Authentifizierungsmöglichkeiten angesehen. PEAR::Auth schien mir am praktikabelsten und hat gleich funktioniert.

    Schau mal auf http://www.circle.ch/blog/index.php?p=566&c=1, das dortige Beispiel hab ich verwendet. Wenn Du die Kommentare weglässt, hast Du mit gerade mal 10 Zeilen PHP-Code (und selbst die kannst Du noch zusammenkürzen) eine funktionierende Authentifizierung.

    Was Du brauchst, ist eine Tabelle, in der die Authentifizierungs-Informationen drinnenstehen. Eine Beispielstruktur ist am Anfang des genannten Beispiels angeführt.

  • Zitat von Wings-of-Glory

    ich weiß nicht, ob du das nicht eh weißt, aber...
    das password und das login kannst du über eine url weitergeben: z.b. http://franzilogin:franzipassw@www.irgendwas.bla


    das ist so in etwas das wonach ich gesucht hab. Allerdings ... der Nachteil ist, daß dann auch der username und das password in der History sichtbar sind. :( Oder kann man das irgendwie vermeiden?

    @Pear::Auth: Die Authentifierung an sich funkt bei mir schon. Aber danke für den Tipp. Ich werd mir das eine oder andere sicher anschauen. Vielleicht haben die es ja schlauer gelöst und ich kann was lernen. ;)

    *** Make it idiot proof, and someone will build a better idiot. ***

  • der tipp von mir ist ein script, welches die standard funktionalität ausnutzt und dir die möglichkeit gibt berechtigungen zu erzeugen, verwalten usw

    00010011100010001010100111000
    {a,b,b} = { *tilt* } :ahhh:

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!