Passwörter landen u.U. im error log
Beispiel:
[2018-06-24 18:48:58] - ERROR - 401 ::
Array
(
[locale] => Array
(
[0] => quiqqer/system
[1] => exception.login.fail
)
)
Login fehlgeschlagen. Bitte überprüfen Sie Benutzername und Passwort.
#0 /var/www/vhosts/namefruits.de/subdomains/juicer/packages/quiqqer/quiqqer/lib/QUI/Users/Manager.php(575): QUI\Users\Auth\QUIQQER->auth('**XXX**')
#1 /var/www/vhosts/namefruits.de/subdomains/juicer/packages/quiqqer/quiqqer/admin/ajax/users/login.php(19): QUI\Users\Manager->authenticate('QUI\\Users\\Auth\\...', Array)
#2 [internal function]: {closure}('QUI\\Users\\Auth\\...', '{"username":"in...', '1')
#3 /var/www/vhosts/namefruits.de/subdomains/juicer/packages/quiqqer/quiqqer/lib/QUI/Ajax.php(344): call_user_func_array(Object(Closure), Array)
#4 /var/www/vhosts/namefruits.de/subdomains/juicer/packages/quiqqer/quiqqer/lib/QUI/Ajax.php(205): QUI\Ajax->callRequestFunction('ajax_users_logi...')
#5 /var/www/vhosts/namefruits.de/subdomains/juicer/packages/quiqqer/quiqqer/lib/ajax.php(101): QUI\Ajax->call()
#6 /var/www/vhosts/namefruits.de/subdomains/juicer/packages/quiqqer/quiqqer/ajax.php(16): require('/var/www/vhosts...')
#7 /var/www/vhosts/namefruits.de/subdomains/juicer/ajax.php(26): require('/var/www/vhosts...')
#8 {main}
{
"request": "https:\/\/juicer.namefruits.de\/ajax.php",
"errorFilename": false,
"userId": false,
"username": "nobody"
}
Die mit **XXX**
markierte Stelle enthält dann das Login-Passwort.
Zwar kommt das nur in die error.log, wenn der Login fehlschlägt, aber Passwörter (auch, wenn sie falsch sind) sollten grundsätzlich nicht in der Log landen.
Im Rahmen von Sequry verwende ich dazu eine HiddenString
-Klasse. Die kann im Grunde wie ein String verwendet werden, gibt jedoch bei einer Serialisierung nicht seine Daten preis.
Kann man sich z.B. hier angucken: https://github.com/paragonie/halite/blob/master/src/HiddenString.php