Hallo fastix®,
[x] gefixt. Danke!
Sieht mir immer noch nicht vertrauenswürdig aus.
system('htpasswd2 -b "'.MyShellEscape($config['userfile']).'" "'.MyShellEscape($user).'" "'.MyShellEscape($pass).'"', $error);
Was passiert den, wenn ich als user »peter\« und als passwort »&& shutdown now && « oder ähnliches angebe?
Was kommt raus?
htpasswd2 -b userfile "peter\" "&& shutdown now && "
Blöd, was? Ich meine, ich habe jetzt nicht getestet, ob das wirklich so funktioniert, vo allem mit dem überflüssigen Anführungszeichen hinten, aber es sieht schon sehr gefährlich aus.
Du musst z.B. verhindern, dass man selbst Backslashes einbaut um deine Backslashes zu escapen, welche die Anführungszeichen escapen sollen.
Jonathan