Moin Moin,
Hier hätte ich eben Bedenken. Ein Script, das für alle drei Gruppen die Einträge vornimmt. Bringt es denn keine Vorteile sicherheitstechnischer Art, dies zu trennen?
Das fasse ich so auf, daß die Bedenken aus dem Auslesen in einer Shared-Hosting-Umgebung herrühren. Da ist die Wahl des SAPIs sehr relevant:
Ist PHP das CGI-Binär, so ist die skizzierte Verzeichnisstruktur ausreichend. Die User-Datein werden automatisch mit den Schreibrechten des Web-Account-Inhabers erstellt - jedoch im Modus 0622 (jeder darf lesen). Im Beispiel muß also das Verzeichnis /heim/auth den Modus 0611 haben. Somit ist der gewählte Name der Datei quasi ein Passwort für andere Account-Inhaber auf der Maschine, da sie das Verzeichnis zwar öffnen Dürfen, es aber nicht auslesen können.
Ist PHP dem Server als Handler zur Seite gestellt, so hat jeder Account-Inhaber auf der Maschine durch die Rechte Severs automatisch auch Schreibzugriff auf die Datein. Es gilt also vorher abzuprüfen, ob der Hoster seine Hausaufgaben gemacht hat. Unerlässlich ist hier der Safe-Mode. Ist dieser nicht eingeschaltet, kann man auch hier mittels Verzeichnisnamen Angreifern das Leben versalzen:
Verzeichnisstruktur Modus Eigentümer
-------------------------------------------------
/heim - irrelevant -
|
-/auth 0711 Web-Inhaber |
-/0JZfp8.E2RLAU 0711 Web-Inhaber
|
-/wZ40GcATzJkUI 0711 Web-Inhaber | |-.htadmin 0622 Server | |-.htmoderator 0622 Server |
-.htmember 0622 Server
Selbstredend ist dies auch die beste Möglichkeit für das CGI (Sicherheitsmodel "paranoia").
Und wie wäre es, die Admin-Kennungen gleich gar nicht über Webzugriffe sondern nur lokal zu verwalten?
Das wäre m. E. einge Geschmackssacht. Der Superuser "Webinhaber" sollte natürlich auf Gegebenheiten auch ohne Scripte manuel eigreifen könnnen.
Ich wüßte nicht, was daran weniger "robust" ist.
Wie sieht es mit der Performance bei einer hohen User-Anzahl aus? Dies führt ja die Doku zu mod_auth_mysql als Vorteil an ("much quicker access").
Tests stehen Dir dazu frei, mich persönlich würde es auch interessieren. Allerdings ist bis jetzt die einhellige Meinung, daß Datenbanken eine Performancebremse sind. Nur hierbeit stellt sich dies nach logischen Gesichtpunkten absolut anders dar:
Mit Flat-Files muß der Server den gesamten File einlesen und sich einen einzigen Datensatz heraussuchen(, ein Caching kann nicht stattfinden) - bei der Datenbanklösung jedoch nicht. Hier ist nur die Betrachtung der permanenten aber geringen Resouceneinbuße eines weiteren Dienstes hinzunehmen und das System wird komplexer.
Wie sieht es hier mit einem Backup des Datenbestandes aus?
Unter welcher UID wird die Datei der DB geschrieben und in welchem Modus?
Wie hoch ist der globale Verlust des Servers beim servieren durch zuschalten des Moduls?
Gibt es Memoryleaks?
Gruß aus Berlin!
eddi