TomIRL: Userverwaltung Mysql vs .htaccess

Guten Tag allerseits,
Ich suche nun auch schon eine Weile in meinen Büchern und Archiv, habe aber irgenwie kein Glück was die auswahl meiner Suchwörter angeht, deshalb stelle ich hier mal ein paar doofe Fragen.

1. Zunächst möchte ich wissen, wie man ein Formular in einem wie auch immer gelagerten html Dokument /PHP Skript  so absenden kann dass ein Login in einen mit .htaccess geschützten Bereich möglich ist. Hier ist vor gar nicht allzu langer Zeit ein Beitrag zu diesem Thema geschrieben worden. Nur finde ich den nicht mehr! Noch nicht?
Ich glaube das kam vom Tom oder vom wahsage. Also über einen Link wäre ich dankbar.

2. Gibt es bei Pear oder was auch immer Skripte / Klassen, die einen einfache Userverwaltung auf MySQL /PHP Basis ermöglichen, und wenn ja wie sicher /zuverlässig sind diese? Man muß ja nicht das Rad neu erfinden wenn es was brauchbares gibt.
Wenn es so etwas nicht gibt, dann suche ich ein Tutorial wie man so etwas am besten erstellt, damit ich nicht unnötig viele Systemkritische Dinge einbaue.

3. Worin liegen die Vorteile / Nachtele einer Userverwaltung mit .htaccess oder mit MySQL /PHP.

Der einzige .htaccess Nachteil der mir eingefallen ist, ist der Punkt, dass man nur sehr inflexibel die Nutzerrechte auf der Verzeichnissebene beschränken kann.
Das reicht aber IMHO für einen großen Teil der Anwendungen aus.

Vielen Dank und viele Grüße

TomIRL

  1. Hallo!

    1. Gibt es bei Pear oder was auch immer Skripte / Klassen, die einen einfache Userverwaltung auf MySQL /PHP Basis ermöglichen, und wenn ja wie sicher /zuverlässig sind diese? Man muß ja nicht das Rad neu erfinden wenn es was brauchbares gibt.
      Wenn es so etwas nicht gibt, dann suche ich ein Tutorial wie man so etwas am besten erstellt, damit ich nicht unnötig viele Systemkritische Dinge einbaue.

    Bei PEAR gibt's auf jeden Fall was:
    http://pear.php.net/packages.php?catpid=1&catname=Authentication

    Ich habe gerade angefangen mit dem Auth-Paket rumzuspielen, seien Zweck erfüllt es jedenfalls. Ob das nun die Top-Lösung ist kann ich dir allerdings nicht sagen.

    Gruß

    Matthias

    --
    ss:| zu:| ls:[ fo:| de:] va:) ch:? sh:) n4:( rl:( br:> js:| ie:% fl:) mo:}
    http://www.makaio.de/quotations
    1. Hallo!

      http://pear.php.net/packages.php?catpid=1&catname=Authentication

      Warum wird der Link nicht als solcher dargestellt? Habe ich was falsch gemacht? Klappt doch sonst immer: http://www.google.com

      Gruß

      Matthias

      --
      ss:| zu:| ls:[ fo:| de:] va:) ch:? sh:) n4:( rl:( br:> js:| ie:% fl:) mo:}
      http://www.makaio.de/quotations
      1. Hallo Matthias,

        http://pear.php.net/packages.php?catpid=1&catname=Authentication

        Warum wird der Link nicht als solcher dargestellt?

        Hm? Das wird er doch...

        Schöne Grüße,

        Johannes

        --
        Das sage ich deshalb, weil ich Hompagebauer bin und Ahnung davon .
        ss:| zu:) ls:[ fo:) de:] va:) ch:) n4:| rl:) br:< js:| ie:{ fl:( mo:}
        1. http://pear.php.net/packages.php?catpid=1&catname=Authentication

          Warum wird der Link nicht als solcher dargestellt?

          Hm? Das wird er doch...

          Bzw, nur in der Vorschau komischerweise nicht...

          Schöne Grüße,

          Johannes

          --
          Das sage ich deshalb, weil ich Hompagebauer bin und Ahnung davon .
          ss:| zu:) ls:[ fo:) de:] va:) ch:) n4:| rl:) br:< js:| ie:{ fl:( mo:}
          1. Moin!

            http://pear.php.net/packages.php?catpid=1&catname=Authentication

            Warum wird der Link nicht als solcher dargestellt?

            Hm? Das wird er doch...

            Bzw, nur in der Vorschau komischerweise nicht...

            Ist mir auch schon aufgefallen, ich hab's mal gemeldet: http://bugs.selfhtml.org/bug.php?op=show&bugid=406&pos=0

            - Sven Rautenberg

  2. hi,

    1. Zunächst möchte ich wissen, wie man ein Formular in einem wie auch immer gelagerten html Dokument /PHP Skript  so absenden kann dass ein Login in einen mit .htaccess geschützten Bereich möglich ist. Hier ist vor gar nicht allzu langer Zeit ein Beitrag zu diesem Thema geschrieben worden. Nur finde ich den nicht mehr! Noch nicht?
      Ich glaube das kam vom Tom oder vom wahsage.

    hmm, also von mir dürftest du da eigentlich nur gelesen haben, dass das nicht geht.
    bei HTTP AUTH wird der client aufgefordert, die login-daten zu übermitteln - und der benutzt dann idR. seinen eigenen mechanismus, um diese vom benuzter zu erfragen.

    1. Worin liegen die Vorteile / Nachtele einer Userverwaltung mit .htaccess oder mit MySQL /PHP.

    Der einzige .htaccess Nachteil der mir eingefallen ist, ist der Punkt, dass man nur sehr inflexibel die Nutzerrechte auf der Verzeichnissebene beschränken kann.
    Das reicht aber IMHO für einen großen Teil der Anwendungen aus.

    nun ja, erst mal hast du folgenden großen unterschied:

    bei HTTP AUTH sorgt der server dafür, dass du über http:// an _keine_ der so geschützten dateien rankommst, wenn du keine korrekten login-daten vorweisen kannst - er verweigert dann einfach die auslieferung.

    wenn du dir mit PHP selber was erstellst, musst du selber das "nichtausliefern" implementieren, und zwar bei jeder betroffenen datei. _du_ musst in deinen scripten dafür sorgen, dass der login geprüft wird, und wenn falsch, nur eine fehlermeldung ausgegeben und das script abgebrochen wird. bei PHP-scripten ja noch recht einfach über ein include zu machen, welches einfach in jedem script oben eingebunden wird.
    aber wenn du auch bilder/sonstige downloadbaren dokumente schützen willst, wird es etwas komplizierter. dann musst du diese so ablegen, dass sie über http:// nicht direkt abrufbar sind, und dir ein weiteres PHP-script schreiben, welches (nach login-prüfung) die betreffende datei über das dateisystem des servers einliest und an den client "durchschleust".

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
  3. Hi TomIRL!

    1. Zunächst möchte ich wissen, wie man ein Formular in einem wie auch immer gelagerten html Dokument /PHP Skript  so absenden kann dass ein Login in einen mit .htaccess geschützten Bereich möglich ist.

    Das geht leider nicht.

    1. Gibt es bei Pear oder was auch immer Skripte / Klassen, die einen einfache Userverwaltung auf MySQL /PHP Basis ermöglichen, und wenn ja wie sicher /zuverlässig sind diese? Man muß ja nicht das Rad neu erfinden wenn es was brauchbares gibt.
      Wenn es so etwas nicht gibt, dann suche ich ein Tutorial wie man so etwas am besten erstellt, damit ich nicht unnötig viele Systemkritische Dinge einbaue.
    1. Worin liegen die Vorteile / Nachtele einer Userverwaltung mit .htaccess oder mit MySQL /PHP.

    Ich würde so nicht unterscheiden. Mit .htaccess meinst Du vermutlich Basic Authentication. Dies kann seine Daten z.B. auch in MySQL/PostgreSQL speichern (mod_auth_pg, mod_auth_mysql). Auf der anderen Seite, hast Du bei PHP die Wahl ob Du mit einem HTML-Formular und einer Sessen-Lösung(Cookies, url-rewrite) arbeiten willst, oder ebenfalls mit Basic Authentication (letzteres aber nur bei mod_php, Zugriff auf den Benutzernamen bei Basic-Auth hast Du allerdings immer über $_SEVER['AUTH_USER']).
    Natürlich hast Du in PHP erheblich weitreichendere Möglichkeiten, was z.B. die Feinheit von Rechten angeht..., auf der anderen Seite hat der Basic-Auth Mechanismus des Apachen(.htaccess) den Vorteil, dass er weniger komplex ist, und komplett außerhalb von PHP abläuft, und somit auch andere Dateien als PHP-Scripte schützt.
    Ich habe lange Zeit mit Basic-Authentication auf Basis von PHP gearbeitet, habe inzwischen aber normale "HTML-Logins", da ich hier die volle Kontrolle über den Authentifizierungs-Mechanismus besitze. Basic-Authentication ist auf HTTP-Ebene implementiert, das heißt Du kannst mit PHP weniger Einfluss auf das Verhalten des Clients(Browser) nehmen, als mit einem HTML-Formular. Eine nervige Sache ist z.B., dass die Basic-Authentication, bzw. sämtliche mir bekannten Implementierungen, keinen Mechanismus für ein "logout" vorsehen. Beim IE war es noch einigermaßen einfach den auf HTTP-Ebene zu "überlisten", bei einigen Mozilla-Versionen war es unmöglich, bei anderen klappt es nicht wirklich zuverlässig... also keine gute Basis.

    Basic-Authentication ist nicht wirklich für eine Login-Session gedacht. Es ist ein wunderbarer Mechanismus wenn man Dateien nur einem beschränktem Benutzerkreis zugänglich machen will, aber wenn Du z.B. so Sachen hast wie ein Timeout des Logins, oder einen Logout-Button, dann macht es keinen Sinn mehr.

    Den Link zum PEAR-Paket hast Du ja schon, das ist sicher eine vernünftige Lösung. Da hast Du auch die Wahl zwischen verschiedenen Mechanismen, wie ich sie hier beschrieben habe.

    Grüße
    Andreas

    --
    SELFHTML Linkverzeichnis: http://aktuell.de.selfhtml.org/links/