Christian: Bringe htaccess und htpasswd nicht zum Laufen

Hallo,

versuche gerade, auf meinem localhost (XAMPP) testweise eine Passwortrestriktion zum Laufen zu bringen.

Dafür habe ich einen Ordner "weg".

In dem Ordner "weg" habe ich eine .htaccess Datei:


AuthType Basic
AuthName "Protected Area"
AuthUserFile localhost/weg/.htpasswd 
require valid-user

In der .htpasswd Datei (liegt im SELBEN Ordner) habe ich einen User mit Passwort:


christian:1234

Wenn ich nun localhost/weg ansteuere, werde ich wie gewollt mit einem Passwort Prompt konfrontiert, wenn ich "christian" und Passwort "1234" eingebe, wird mir ein Internal Server Error entgegengeworfen.

Bitte kein Verweis auf "ich muss doch das Passwort hashen und salten", ich will das mal GAAAAANZ EINFACH testweise zum laufen bringen.

Im selfhtml wiki war ich schon.

Habe auch schon mit dem Pfad von AuthUserFile herumhantiert, sogar D:/xampp/htdocs/... in meiner Verzweiflung probiert, keine Besserung in Sicht.

Übersehe ich da etwas ganz offensichtliches? Habe bereits mit AuthUserFile herumgespielt, hat nichts gebracht.

Ein Königreich für eine Idee, LG Christian

  1. Hi,

    In dem Ordner "weg" habe ich eine .htaccess Datei:

    
    AuthType Basic
    AuthName "Protected Area"
    AuthUserFile localhost/weg/.htpasswd 
    require valid-user
    

    AuthUserFile muß absolut sein, oder relativ zum Server-Root. NICHT relativ zum htdocs oder so.

    Die Datei sollte auch nicht in einem Bereich liegen, der per http(s) erreichbar ist (auch wenn Dateien .ht* üblicherweise nicht ausgeliefert werden).

    In der .htpasswd Datei (liegt im SELBEN Ordner) habe ich einen User mit Passwort:

    
    christian:1234
    

    War das früher mal möglich, die Paßwörter unverschlüsselt abzulegen?

    Normalerweise erzeugt man die Einträge mit dem htpasswd-Programm, das die Verschlüsselung erledigt …

    Ein Königreich für eine Idee,

    aber bitte nicht das Vereinigte …

    cu,
    Andreas a/k/a MudGuard

    1. Hallo Andreas,

      War das früher mal möglich, die Paßwörter unverschlüsselt abzulegen?

      Unter Windows musste man früher die Passwörter unverschlüsselt ablegen. Ich weiß ehrlich gesagt nicht, ob das immer noch so ist.

      Gruß
      Patrick

      1. Nochmal ich 😉

        Unter Windows musste man früher die Passwörter unverschlüsselt ablegen. Ich weiß ehrlich gesagt nicht, ob das immer noch so ist.

        Und ich habe glaube ich die Antwort darauf selbst gefunden: https://httpd.apache.org/docs/2.4/programs/htpasswd.html
        Das war wohl noch früher so, als es nur die crypt()-Funktion gab. Mittlerweile gibt es besser Algorithmen.

        Gruß
        Patrick

  2. Lieber Christian,

    christian:1234
    

    Bitte kein Verweis auf "ich muss doch das Passwort hashen und salten", ich will das mal GAAAAANZ EINFACH testweise zum laufen bringen.

    das kann nicht klappen, da der Apache hier zwingend ein verschlüsseltes Passwort erwartet - egal was Du willst. Tja, „einfach“ sitzt nun mal leider auf der Strafbank direkt neben „nachhaltig“ und „nur ganz kurz“. Aber zum Testen hilft Dir vielleicht der htpasswd-Generator?

    Liebe Grüße

    Felix Riesterer

    1. Hallo,

      Danke euch, das funktioniert tatsächlich. 👏👏👏

      Habe es davor aber tatsächlich auch schon mit einem PHP Hash probiert:

      $encryptedPassword = password_hash('strengstGeheimstestenst', PASSWORD_DEFAULT);
      

      Bin hier auf CRYPT als Hashing Algorithmus für das Generieren von .htpasswd Passwörtern gestoßen - akzeptiert .htpasswd keine anderen Algorithmen (wie eben den aktuellen PHP Hash Algorithmus?)

      Danke für eure Hilfe!

      Christian

      1. Lieber Christian,

        akzeptiert .htpasswd keine anderen Algorithmen (wie eben den aktuellen PHP Hash Algorithmus?)

        ich bin kein Experte in Kryptographie - und Du bist es auch nicht. Deswegen pflegen die Macher von PHP für Leute wie Dich und mich alle Nase lang den in der Konstanten PASSWORD_DEFAULT verwendeten Algorithmus und haben sogar eine Funktion im Angebot, welche selbständig prüfen kann, ob beim vorliegenden Hash auch dieser empfohlene Algorithmus verwendet wurde: password_needs_rehash()

        Also: Ignoriere andere Möglichkeiten und verlasse Dich in dieser Angelegenheit auf diejenigen, die sich mit soetwas auskennen. Für Interessensfragen auf diesem Gebiet kann die jeweilige Doku Auskunft geben: https://httpd.apache.org/docs/current/programs/htpasswd.html#security

        Liebe Grüße

        Felix Riesterer

        1. Hallo Felix, Hallo Christian!

          Die Passwort-Funktionen von PHP (wie eben auch password_needs_rehash()) haben wenig bis nichts mit htaccess bzw. htpasswd zu schaffen.

          Christian: Nimm das mit Deinem Webserver mitgelieferte Programm htpasswd.

          wenn ich "christian" und Passwort "1234" eingebe, wird mir ein Internal Server Error entgegengeworfen.

          Hm. Und zu dem „entgegenwerfen“ gehört ein aussagekräftiger Eintrag in einem Error-Log. Das gibt es auch beim XAMPP. Ich kann Dir nur nicht „sagen“, wo es genau liegt. Ich muss mich nicht mit XAMPP befassen und will das auch nicht.

          Ein Blick da hinein (error.log) und Du weißt ob es am Name oder Pfad oder dem Mangel an Leserechten liegt.

          1. Hallo Felix, Hallo Christian!

            Die Passwort-Funktionen von PHP (wie eben auch password_needs_rehash()) haben wenig bis nichts mit htaccess bzw. htpasswd zu schaffen.

            Das gilt auch dann wenn ich es selbst „trickreich“ hinbekommen habe (Zeile 377) - Aber Christian wollte es doch „einfach“.