XaraX: Member - Bereich inkl. Verzeichnisschutz

Beitrag lesen

Irgendwie verlieren wir uns im Kleinen und reden sicherlich auch teilweise aneinander vorbei.

Nachdem ich hier nun schon lesen mußte, daß _ich_ hier mutmaße, bin _ich_ es sicher auch, der dafür verantwortlich ist.

Wir wissen wenig zur genauen Situation des OP und unsere allgemeinen Herangehensweisen kommen nur nach und nach zum Vorschein.

Die kann dahingestellt bleiden, da es um ein globales Problem geht.

Nun kommt es auf die Größe der Gemeinschaft an, ob zur Verwaltung selbiger die Daten einfach (mit nicht vorhandenem(?) Lockingmechanismus) in Konfigurationsdateien geschrieben werden können und Konflikte bei konkurrierendem Zugriff ignoriert werden können, oder ob nicht eine "richtige" Datenbank dafür genutzt werden sollte. [2]

Der zum Schreiben konkurierende Lesezugrif auf eine Datei .htusers birgt keinerlei Sicherheitsrisiken in sich, nur eine potentiell temporäre Einschränkung im Microsekundenbereich, die der Funktionalität zusetzten könnte. Eine detailierte Betrachtung, trotz Anmerkung, fand leider in diesem Punkt bis jetzt noch nicht statt.

Mit getrennten Verzeichnissen (s.o.) und entsprechend fein eingestellten Zugriffsrechten auf die Tabellen/Felder der DB für die jeweiligen Admin/Moderatoren/...-Scripte bzw. für das Auth-Modul des Apachen stelle ich mir das sicherer und robuster vor.

Ich bin ein zugegebener Datenbankmuffel und habe bis jetzt auch noch keine benötigt. Meine Tabellen sind Verzeichnisse. Diese sollen nach Deinem Vorschlag ohnehin angelegt werden. Ja muß ich diese Struktur dann auch noch extra in eine DB einmeiseln? Was kommt denn als nächstes? Das man "geschütze" Code-Schnipsel in eine DB schreibt und mit eval() sie zu aktivieren versucht? Hatten wir doch hier alles schon im Forum.

Diese fein eingestellten Zugriffsrechte auf die Tabellen, von denen Du schreibst, finden ihr Gleichnis in den einzelnen Verzeichnissen und denen dort abgelgeten .htaccess-Datein.

Es bedarf, ausgehend von Deinen Überlegungen, drei Verzeichnisse und vier Scripte:

/heim
  |
  |-/include
  |   |
  |   |-/member_data
  |   |   |           je nach Geschmack oder Anforderung
  |   |   - [usw]    hat Member ein Daten-"Blatt" oder   |   |               ein Verzeichnis   |   -/scripte
  |       |
  |       |-/admin
  |       |
  |       |-/moderator
  |       |
  |       |-/member
  |       |
  |       -/sonstige   |   |-/auth   |   |   |   |-.htadmin   |   |   |   |-.htmoderator   |   |   |   -.htmember
  |
  -/htdocs       |       |-/sonstige\_web       |       -/schutzbereich
          |
          |-anmelde.php
          |
          |-admin
          |
          |-moderator
          |
          |-member
          |
          `-.htaccess

/heim/htdocs/.htaccess

<Files admin>
  AuthType Basic
  AuthName "admin"
  AuthUserFile /heim/auth/.htadmin
  require valid-user
</Files>
<Files moderator>
  AuthType Basic
  AuthName "moderator"
  AuthUserFile /heim/auth/.htmoderator
  require valid-user
</Files>
<Files member>
  AuthType Basic
  AuthName "member"
  AuthUserFile /heim/auth/.htmember
  require valid-user
</Files>

/heim/hrdocs/anmelde.php
  
if(alles_richtig($daten))  
   {  
   shell_exec($pfad.'/htpasswd /heim/auth/.ht'.$gruppe.' '.$user.' '.$pass);  
   }  

/heim/hrdocs/(admin|moderator|member)
  
  
# Das Script würde ich über PATH_INFO steuern,  
# (Bsp.: /member/susi/einstellungen/haarfarbe.html)  
# die User also virtuell halten und Daten aus  
# dem Verzeichnis /heim/include/member_data/$user  
# holen sowie Scripte aus /heim/include/scripte/$group  
  
$user =explode('/',$_SERVER["PATH_INFO"]);  
$user =$user[1];  
$group=explode('/',$_SERVER["REQUEST_URI"]);  
$group=$group[2];  
if($user!=$_SERVER["REMOTE_USER"])  
   {  
   header('Status: 401');  
   exit;  
   }  
# include der nach PATH_INFO und $group  
# erforderlichen Scripte und deren Abarbeitung  

Ich wüßte nicht, was daran weniger "robust" ist.

Gruß aus Berlin!
eddi