# GeneWeb - Zugriffsbeschränkungen

Wenn deine Datenbank im Web sichtbar ist, möchtest du vielleicht Maßnahmen ergreifen, um den Zugriff auf die darin enthaltenen Informationen einzuschränken.

Mit GeneWeb kannst du:

- Online-Änderungen beschränken: Wizard-Zugriff.
- Private Informationen schützen: Freund-Zugriff.
- Zugriff auf eine Datenbank global schützen.
- Zugriff auf den gwd-Dienst global schützen.

Wenn deine Datenbank in eine Website eingebunden ist, betreffen dich nur die ersten drei Punkte.

Die letzten beiden Punkte (globaler Schutz) funktionieren nur im Servermodus. Im CGI-Modus müssen die Methoden des jeweils verwendeten HTTP-Servers eingesetzt werden.

Da sich dieses Kapitel mit Zugriffsbeschränkungen beschäftigt, behandelt der nächste Abschnitt das Thema Roboter und wie man sie davon abhält, Schaden anzurichten. Der letze Abschnitt beschreibt einen noch schärferen Weg der Zugriffsbeschränkung: Die schwarze Liste.

### Online-Änderungen einschränken: "Wizard"-Zugriff

Wenn du nicht möchtest, daß jemand Änderungen an deiner Datenbank vornehmen kann, mußt du ein "Wizard"-Kennwort auf deine Datenbank legen.

In diesem Fall können nur Personen Online-Änderungen vornehmen, die das korrekte "Wizard"-Kennwort besitzen. Alle anderen können normal navigieren, aber sie bekommen den klickbaren "Ändern"-Text in den Personenseiten nicht angezeigt.

Um ein "Wizard"-Kennwort einzurichten, gehe wie folgt vor:

- Wenn du normalerweise "gwsetup" für die Konfiguration verwendest, starte das Programm nun, gehe in das Hauptmenü und wähle "Konfiguriere Parameter einer Datenbank". Trage das "Wizard"-Kennwort ein und drücke "Ausführen".
- Wenn du "gwsetup" nicht benutzt, bearbeite die Datei "meier.gwf" (für eine Datenbank namens "meier"). Falls diese Datei nicht existiert, erzeuge sie, indem du eine Kopie der mitgelieferten Beispieldatei "a.gwf" machst. Gib dein Kennwort als Wert der Variablen "wizard_passwd" ein. Beispiel:

           wizard_passwd=xyzzy

- Wenn deine Datenbank in eine Website eingebunden ist, bitte den Administrator, ein "Wizard"-Kennwort einzutragen.

Wenn ein "Wizard"-Kennwort installiert ist, wird auf der Startseite (die mit den Flaggen) ein Bereich für die Kennworteingabe angezeigt.

- Im Servermodus zeigt die Seite einen Text "Wizard-Zugang", der anklickbar ist. Dein Browser blendet dann ein Fenster auf, in dem du das Kennwort eingeben kannst (das Feld "Benutzername" wird ignoriert, gib hier einfach irgendetwas ein).
- Im CGI-Modus oder falls es eine globale Zugriffsberechtigung gibt (siehe unten), wird ein Eingabefeld eingeblendet. Gib hier dein Kennwort ein und drücke "Ok" (in diesem Modus ist das Kennwort sichtbar und bleibt während der Navigation auch in den URLs sichtbar).

Nachdem du das Kennwort eingegeben hast, wird die Startseite neu angezeigt. Du kannst erkennen, daß du nun im "Wizard"-Modus bist, denn die Texte "Familie hinzufügen" und "Notizen ändern" werden nun angezeigt.

Beim Navigieren hast du auf den Personenseiten außerdem Zugriff auf die Funktion "Aktualisieren".

### Private Informationen schützen: "Freund"-Zugriff

Wenn du die privaten Informationen in deiner Datenbank schützen möchtest, mußt du ein "Freund"-Kennwort eintragen. Die privaten Daten betreffen nur die Personen, die vor weniger als hundert Jahren geboren wurden und sind:

- Geburts-, Todes-, Hochzeits-, usw. -daten und -orte
- Beruf
- Notizen
- Bild
- "Andere Beziehungen" (Taufpaten, Adoptiveltern, usw.)

Die übrigen Genealogieinformationen (Eltern, Kindern) bleiben immer sichtbar.

Wenn es ein "Freund"-Kennwort gibt, können nur die Personen, die dieses Kennwort (oder das "Wizard"-Kennwort) eingegeben haben, die privaten Informationen sehen.

Um ein "Freund"-Kennwort einzurichten, verfahre wie oben beim "Wizard"-Kennwort beschrieben. Falls du die Datei "meier.gwf" modifzierst, so setze nun die Variable "friend_passwd".

### Zugriff auf eine Datenbank global schützen

Wenn du möchtest, daß deine Datenbank nur für einige Personen sichtbar ist, kannst du eine globale Zugriffsbeschränkung einrichten.

Warnung: Dies funktioniert nur im Servermodus. Wenn du im CGI-Modus arbeitest, mußt Du die Methoden nutzen, die in dem verwendeten HTTP-Server zur Verfügung gestellt werden (dies wird hier nicht beschrieben, da das Vorgehen abhängig vom verwendeten Server ist).

Zunächst mußt du eine Berechtigungsdatei erstellen. Diese Datei enthält Zeilen der Form "benutzer:kennwort". Zum Beispiel:

         hugo:ex23zuu
         martin:2wxuz4

Um diese Berechtigungsdatei zu installieren, gehe wie folgt vor:

- Kopiere die Datei in das Datenbankverzeichnis. In der Standardinstallation ist dies das Verzeichnis "gw". Dann bearbeite die Datei "meier.gwf" (wenn dein Datenbankname "meier" ist; falls diese Datei nicht existiert, erstelle sie als Kopie der mitgelieferten Datei "a.gwf"). Füge den Namen deiner Berechtigungsdatei als Wert der Variablen "auth_file" ein. Beispiel (falls du deine Berechtigungsdatei "meier.auth" genannt hast):

           auth_file=meier.auth

- Wenn deine Datenbank in einen Webserver eingebunden ist, frage den Serveradministrator und sende ihm deine Berechtigungsdatei.

Beim Zugriff auf diese Datenbank öffnet dein Webbrowser ein Fenster, in dem du einen gültigen Benutzernamen und das zugehörige Kennwort eingeben mußt.

In dem obigen Beispiel mußt Du also "meier" in dem Feld "Benutzerkennung" und "ex23zuu" im "Kennwort"-Feld eingeben oder aber "martin" in dem Feld "Benutzerkennung" und "2wxuz4" im "Kennwort"-Feld.

Wenn dein Eintrag nicht gültig ist, erhältst du keinerlei Zugriff auf die Datenbank.

### Zugriff auf den gwd-Dienst global schützen

Wenn du möchtest, daß der gwd-Dienst nur von einigen Personen nutzbar ist, kannst du eine globale Zugriffsbeschränkung für den gwd-Dienst installieren. Diese gilt dann für alle enthaltenen Datenbanken.

In diesem Fall sind dann alle Datenbanken nur über die Zugriffsbeschränkung erreichbar. Falls jedoch auf einigen der Datenbanken spezifische globale Zugriffsbeschränkungen installiert sind (siehe vorheriger Abschnitt), so gelten statt der allgemeinen die spezifischen Zugriffsbeschränkungen.

Warnung: Wie auch im vorherigen Abschitt, so funktioniert auch dieses nur im Servermodus, nicht im CGI-Modus.

Du mußt wiederum eine Berechtigungsdatei erzeugen. Dies kann nur durch den Webserver-Administrator erfolgen: wenn deine Datenbank anders untergebracht ist, betrifft dich das nicht.

Die globale Berechtigung wird installiert über die Parameter des "gwd"-Kommandos. Die Option "-auth" muß gefolgt werden vom Namen der Berechtigungsdatei.

### Roboter

Gelegentlich kommt es vor, daß jemand einen "Roboter" auf deine Website schickt. Diese Roboter sind Programme, die deine Website methodisch durchsuchen, z.B. indem sie auf einer spezifischen Seite anfangen und dann alles "anklicken" was irgendwie anklickbar aussieht und mit den resultierenden Seiten fortfahren.

Die Anwendung eines Roboters auf eine GeneWeb-Seite ist in der Regel eine schlechte Idee, da hier die Anzahl der Seiten nahezu unendlich sein kann. Falls zum Beispiel der Roboter von einer Personenseite aus beginnt, auf "Verwandtschaft ermitteln" klickt, dann auf die Ehefrau, berechnet er alle Verwandtschaftsbeziehungen zwischen der Person und seiner Gattin, dann kann er auf die Details all dieser Links klicken, und auf alle Personen dazwischen usw.

Oft ist der Gedanke von Leuten, die einen Roboter starten derjenige, daß sie sagen, statt eine Stunde auf einer interessanten Website herumzuklicken, lade ich lieber alle Seiten und lese sie in Ruhe zu Hause, während meine Telefonleitung frei bleibt.

Da GeneWeb aber ein Labyrinth ohne Ausgang ist, führt dies nur zu einem Ergebnis: Es überlädt die Platte der betreffenden Person mit HTML-Seiten.

Aus der Sicht des Betreibers eines Webservers ist es normalerweise nicht wünschenswert, so viele Anfragen so schnell hintereinander zu erhalten, z.B. mehr als zehn pro Sekunde, denn:

- das bremst den Computer,
- das bremst die anderen Nutzer, die den Webserver normal benutzen,
- es verfälscht die Statistik der Webzugriffe,
- es erzeugt das unangenehme Gefühl, ausspioniert zu werden.

Die Seiten, die von GeneWeb generiert werden, sagen (im Übertragungsprotokoll) dem Roboter jedoch eindeutig, daß er mit dem Herunterladen dieser Seiten nicht weitermachen soll.

"Gute" Roboter, z.B. solche, die die Webseiten oder die "ganze Welt" indizieren, respektieren diese Protokollanweisung und bestehen nicht darauf, weiterzumachen. Aber wenn jemand einen Roboter startet, ist es nahezu unmöglich, ihm zu befehlen, die Regeln zu beachten.

Als Maßnahme gegen solche ungezogenen Roboter existiert die Option "-robot_xcl" des gwd. Diese Option wertet die Geschwindigkeit aus, mit der Anfragen vom selben Ort kommen.

Parameter für die Option sind zwei Zahlen, getrennt durch ein Komma. Der erste Wert ist die Anzahl "x" der Zugriffe und der zweite Wert die Zahl "y" von Sekunden. Wenn eine Adresse mehr als "x" Zugriffe innerhalb von "y" Sekunden macht, werden alle zukünftigen Zugriffe von dort mit einer entsprechenden Meldung abgewiesen.

Beispiel:

         gwd -robot_xcl 100,150

Wenn mehr als 100 Verbindungen in 150 Sekunden von derselben Adresse erkannt werden, erhält die Ursprungsadresse solange keinen Zugriff mehr, bis der Website-Betreiber sich entscheidet, sie wieder freizugeben.

Um den Zugriff von den gesperrten Adressen wieder freizugeben, muß der Website-Betreiber die Datei "robot" löschen, die im Verzeichnis "cnt" liegt. Dies wird auf jeden Fall im Zugriffslog des gwd protokolliert.

### Die schwarze Liste

Die schwarze Liste erlaubt es, den Zugriff auf einen GeneWeb-Server für einzelne oder Gruppen von Internetadressen zu sperren.

Erzeuge eine Datei namens "gwd.xcl" im gleichen Verzeichnis wie "gwd".

Editiere diese Textdatei und trage darin die auszuschließenden Adressen ein (eine pro Zeile), die du abweisen willst. Du kannst auch einen "*" eintragen, um eine Menge von Zeichen anzugeben. Beispiel:

         grosser-böser@wolf.wald
         provider-*@kein.zugriff

Das verbietet den Zugang von Adressen wie "grosser-böser@wolf.wald", "provider-22@kein.zugriff", "provider-xx@kein.zugriff", und so weiter. Wenn du lediglich eine Zeile mit "*" einträgst, wird allen Adressen der Zugriff verweigert (einschließlich deiner eigenen).

Zurück zur Gebrauchsanweisung.

Copyright (c) 1998-2006 INRIA - GeneWeb