Problem mit .htaccess und md5 (PHP)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem mit .htaccess und md5 (PHP)

    Hallo zusammen


    Ausgangslage

    Wir haben eine bestehende MySQL Datenbank mit ungefähr 3500 Nutzern. In der Datenbank sind die Nutzer mit Benutzernamen und Passwort gespeichert. Das Passwort wird vor dem Eintrag in die Datenbank mit der PHP Funktion md5 verschlüsselt.

    Des weiteren haben wir eine PHP-Klasse für die Authentifizierung mittels WWW-Authenticate erstellt, die wir auf allen zu schützenden Seiten am Anfang mittels include einbinden.

    Gehostet wird das ganze auf einem Red Hat Linux Server mit Apache.

    Anforderung
    Wir möchten nun auch ganze Verzeichnisse vor dem Zugriff schützen können, damit nur angemeldete Nutzer auf die Dateien darin (z.B. Word-Dokumente) zugreifen können.

    aktueller Lösungsansatz
    Da Verzeichnisse mittels .htaccess geschützt werden müssen, haben wir uns folgende Lösung ausgedacht:

    Wir erstellen ein PHP-Skript, dass bei jeder Änderung in der Benutzerdatenbank (Neuanmeldung, Änderung Passwort oder Benutzername) wieder den aktuellen Stand in die .htpasswd Datei für das zu schützende Verzeichnis kopiert. Somit können wir dem Skript auch sagen, dass z.B. nur ganz bestimmte Benutzer zu diesem Verzeichnis Zugriff erhalten sollen und deren Benutzername & Passwort in die .htpasswd Datei kopierd werden soll.

    Problemstellung
    Wenn wir nun aber aus der Datenbank das mittels PHP md5 verschlüsselte Passwort so in die .htpasswd Datei kopieren, funktioniert danach das Login mittels .htacces nicht, da der Apache Server anscheinend davon ausgeht, dass die Passwort in der .htpasswd Datei mittels "crypt" verschlüsselt sind...

    Hat jemand ne Ahnung wie wir dieses Problem nun am sinnvollsten lösen könnten bzw. einen besseren Lösungsansatz?`

    Ich bedanke mich für sämtliche Hinweise!

  • #2
    du kannst nur parallel in einer andern Tabelle die originalPWs mitschreiben...

    oder wenn jemand die Rechte bekommt ihm ein neues PW per Randomizer zuweisen.

    ne andere Möglichkeit seh ich nicht.

    Wobei ein Randomizer die sinnvollste Variante wäre. Die User können ja sicher ihre PWs ändern.
    tata
    moqui

    [COLOR=red]Ich will keine unaufgeforderten Mails über PHP Fragen. Es gibt ein Forum hier! Und ich bin nicht Scripter für jeden, der mir ne Mail schreibt![/COLOR]

    Kommentar


    • #3
      Okay, vielen Dank!

      Dann muss ich wohl die ganze PW-Verschlüsselung von md5 auf crypt umstellen, also dass alle Passwort anstelle von md5 mit crypt verschlüsselt werden, bevor sie in die db kommen... dann dürfte unser Lösungsansatz eigentlich so funktionieren.

      Oder gibt es eventuell allgemein viel bessere Möglichkeiten, Benutzer über eine MySQL-Tabelle zu verwalten und ihnen gleichzeitig mittels htaccess Zugriff zu speziellen Verzeichnissen sowie mittels www-Auth auch zu einzelnen PHP-Skripts im Hauptverzeichnis zu gewähren?

      Der Grund wieso md5 gewählt wurde war aufgrund der Sicherheit. md5 soll ja anscheinend um ein vielfaches sicherer und unknackbarer sein als crypt,... stimmt das?

      Kommentar


      • #4
        http://www.google.at/search?sourceid...d+auth%5Fmysql

        wär ja nicht so dass es da kein modul für den apache gibt ..
        http://www.cgi101.com/class/password...uth_mysql.html

        kannst auch tabelle und die versch. felder einstellen .. insofern sollte es da kein problem geben ..

        nur .. es werden 3 verschlüsselungsarten unterstützt .. bzw 2 ..
        plain, die mysql funktion password() und crypt_des ..
        genauer hab ich das ned angeschaut ob man vlt md5 einstellen könnte ..
        gucks dir aber mal an .. sicherlich interessant
        mfg,
        [color=#0080c0]Coragon[/color]

        Kommentar


        • #5
          oh danke für den Link.

          Hab bei Google gestern auch schon 3 Stunden lang das Internet mit verschiedenen Suchbegriffen durchsucht. Dabei war auch auth und MySQL. Über mod_auth_mysql bin ich zwar auch gestolpert, doch als absoluter Linux und Apache Anfänger konnte ich keine gute Referenz dazu finden. Dein Link ist optimal, da das Modul und dessen Funktionen hier wirklich ausführlich beschrieben sind!

          Das mit der Verschlüsselung muss wohl etwas mit Auth_MySQL_Encryption_Types zu tun haben, ich schau mal ob ich da noch mehr finde....

          Kommentar

          Lädt...
          X