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.

<p>

Mit {GeneWeb} kannst du:

<ul>

<li>Online-Änderungen beschränken: <a href="#Wiz">Wizard</a>-Zugriff.

<li>Private Informationen schützen: <a href="#Fri">Freund</a>-Zugriff.

<li>Zugriff auf eine <a href="#DBA">Datenbank</a> global schützen.

<li>Zugriff auf den <a href="#GWA">gwd-Dienst</a> global schützen.

</ul>

<p>

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

<p>

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

<p>

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


<a name="Wiz"></a>
== 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.

<p>

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.


<p>

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

<p>

<ul>

<li>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".


<li>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:

<pre>
     wizard_passwd=xyzzy
</pre>

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


</ul>

<p>

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

<p>

<ul>

<li>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).

<li>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).

</ul>

<p>
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.

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


<a name="Fri"></a>
== 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:

<p>

<ul>

<li>Geburts-, Todes-, Hochzeits-, usw. -daten und -orte

<li>Beruf

<li>Notizen

<li>Bild

<li>"Andere Beziehungen" (Taufpaten, Adoptiveltern, usw.)

</ul>

<p>

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

<p>

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

<p>

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".


<a name="DBA"></a>
== 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.

<p>

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).

<p>

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

<p>

<pre>
     hugo:ex23zuu
     martin:2wxuz4
</pre>

<p>

Um diese Berechtigungsdatei zu installieren, gehe wie folgt vor:

<p>

<ul>

<li>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):

<pre>
     auth_file=meier.auth
</pre>

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

</ul>

<p>

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.

<p>

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.

<p>

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


<a name="GWA"></a>
== 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.

<p>

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.

<p>

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

<p>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.

<p>

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


<a name="Rob"></a>
== 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.

<p>

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.
<p>

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.

<p>

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.

<p>

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:

<p>

<ul>

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

</ul>

<p>

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

<p>

"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.

<p>

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.


<p>

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.

<p>

Beispiel:

<p>

<pre>
     gwd -robot_xcl 100,150
</pre>

<p>

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.

<p>

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.


<a name="Bla"></a>
== Die schwarze Liste ==

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

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

<p>
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:
<pre>
     grosser-böser@wolf.wald
     provider-*@kein.zugriff
</pre>

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).


<p>

<br>
<center>
Zurück zur [[[diruse/Gebrauchsanweisung]]].
</center>

