Konfigurieren Sie Apache für die Verwendung der SQL Server-Authentifizierung mit Kennwort und Salt

Konfigurieren Sie Apache für die Verwendung der SQL Server-Authentifizierung mit Kennwort und Salt

Ich habe eine Webanwendung, die ich mit Apache-Authentifizierung schützen möchte. Ich habe herausgefunden, dass sie sha1+salt zum Speichern von Passwörtern verwendet. Da auth_mysql_modulees veraltet ist, versuche ich, zu verwenden authn_dbd_module. Derzeit verwende ich Debian Wheezy. So erstellt die Webanwendung Passwort-Hashes:

<?php sha1($pw.$salt); ?>

versuche es mit PHP:

sha1('password'.'salt')
c88e9c67041a74e0357befdff93f87dde0904214

Ich kann den Hash mit MySQL reproduzieren:

SELECT SHA1(CONCAT(@pw, @salt));

versuchen Sie es mit MySQL:

mysql> SELECT SHA1(CONCAT('password', 'salt'));
+------------------------------------------+
| SHA1(CONCAT('password', 'salt'))         |
+------------------------------------------+
| c88e9c67041a74e0357befdff93f87dde0904214 |
+------------------------------------------+

Mein apache site.conf:

    DBDriver mysql
    DBDParams "host=localhost user=<db_user> pass=<db_pass> dbname=<db_name>"

    <Directory /var/www/htdocs/>
       Options -Indexes
       Order allow,deny
       Allow from all

       AuthName "Please enter username and password"
       Authtype Basic
       require valid-user

       AuthBasicProvider dbd
       AuthDBDUserPWQuery "SELECT SHA1(CONCAT(password, salt)) AS password FROM users WHERE username = %s"

    </Directory>

Die AuthDBDUserPWQueryZeile funktioniert offensichtlich nicht, da sie aus (gespeichertem Hash und Salt) einen neuen Hash erstellt und diesen mit dem eingegebenen Passwort vergleicht. Und Apache-Log:

[Sat Aug 22 XX:XX:XX 2015] [error] [client 92.X.X.X] user myusername: authentication failure for "/": Password Mismatch

Ich weiß, dass es weder empfehlenswert ist, SHA1 noch Short Salt zum Speichern von Passwörtern zu verwenden. Aber trotzdem: Gibt es eine Möglichkeit, die Authentifizierung zum Laufen zu bringen?

verwandte Informationen