Moin!
Was mir an dem ganzen Skript absolut nicht gefällt, sind die diversen beiläufigen System-Shell-Aufrufe, die an den verschiedendsten Orten eingestreut werden, ohne sofort ins Auge zu fallen.
Dabei halte ich es insbesondere für problematisch, dass es gar keine Regelmäßigkeit gibt, ob für eine Aktion jetzt nur PHP-Mittel benutzt werden, oder ob ein externes Shell-Kommando zum Einsatz kommt. Mal ist es so, mal ist es anders.
Das war dem schnellen Ergebnis geschuldet.
Und wenn dann die Shell bemüht wird, um irgendeine Trivialität zu erledigen, mangelt es notorisch immer wieder am Escaping!Dabei ist es aus meiner Sicht absolut unerheblich, ob die jeweils benutzten Variablen eigentlich statische und vernünftige Werte enthalten -
Du meinst, ich sollte auch quasi fest verdrahtete Werte escapen?
Fakt ist, dass sie dies nicht zwingend in jeder Situation tun müssen, und dass es vom Sicherheitsapekt her eine extrem schlechte Idee ist, in einer konkreten Programmzeile eine potentielle Sicherheitslücke offen zu lassen mit dem Argument, dass man eben anderswo, wo der Aufruf dieser Sicherheitslücke gestartet wird, ganz besonders aufpasst, dass auch nichts passiert.
Na, ich weiss nicht: Ich habe das ja nicht als bibliothek geschrieben um den Code an anderer Stelle weiterzuverwerten.
Resultat: Anstatt an genau einer Stelle aufzupassen und Gegenmaßnahmen zu ergreifen, vervielfältigt man das Problem, indem man jetzt an jeder Stelle, die die Funktion aufruft, aufpassen und Gegenmaßnahmen ergreifen muss.
gute idee.
$users=trim(
cut -d: -f1 $userfile);
http://de.php.net/file_get_contents + explode + explode + Arraybearbeitung
wenn schon file +trim +explode
Auf der anderen Seite: Solch eine Aufgabe ist schon so uralt und hat schon so viele Admins geärgert, dass es extrem unwahrscheinlich ist, dass da noch niemand was erstellt hat.
Wer pear verwenden kann (und darf), der hat mit dem Rest erst recht kein Problem.
Und tatsächlich: Da gibts auch was von PEARiopharm! - dummerweise nur zum Handling des .htaccess-Files, nicht für .htpasswd.
Du sagst es. Löst nur ein Teilproblem.
Was mich zu dem Schluss kommen läßt, dass entweder der Bedarf doch nicht so riesig ist, weil für größeren Bedarf kein .htpasswd eingesetzt wird, sondern z.B. mod_access_mysql mit Datenbankanbindung (und wie man die DB mit PHP nutzt, ist bekannt), und für den kleinen Bedarf anscheinend der Shell-Aufruf von htpasswd ausreicht.
Und was ist mit dem Bedarf der vielen kleinen Website-Betreiber, die ihre 3-15 Benutzer von geschützten Verzeichnissen verwalten wollen? Die müsste jedesmal die Dienste von fremden Webseiten in Anspruch nehmen, wissen auch nicht, ob es funktioniert...
Ich werde mir dennoch die md5-Lösung mal anschauen, dass auf vielen hosts die system-Aufrufe gecancelt werden ist ein nicht zu schlagendes Argument, vor allem hinsichtlich der Zielgruppe.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development