| # GeneWeb - Restrictions d'accès

Si votre base de donnéees est visible sur le Web, vous voulez peut-être disposer de moyens pour restreindre l'accès aux informations qui s'y trouvent.

Avec GeneWeb, vous pouvez:

- Limiter les modifications en ligne: accès magicien.
- Protéger les informations privées: accès ami.
- Protéger l'accès global à une base de données.
- Protéger l'accès global au service gwd.

Si votre base de données est hébergée sur un site, vous n'êtes concerné que par les 3 premiers points.

Les deux derniers points (accès globaux) ne fonctionnent qu'en mode serveur. En mode cgi, il faut utiliser les moyens donnés par le serveur HTTP dont vous dépendez.

Puisqu'on est sur le sujet des restrictions d'accès, la section suivante concerne le problème des robots et les moyens de les empêcher de nuire. La dernière section indique une méthode encore plus brutale d'interdiction d'accès: la liste noire.

### Limitation des modifications: accès "magicien"

Si vous ne voulez pas que n'importe qui puisse faire des modifications en ligne, il faut mettre un mot de passe "magicien" à votre base de données.

Dans ce cas, seules les personnes ayant fourni le bon mot de passe "magicien" auront droit aux modifications. Les autres pourront naviguer normalement mais ne verront pas de zone cliquable "mise à jour" dans les pages personnelles.

Pour installer un mot de passe "magicien", procédez comme suit:

- Si vous passez habituellement par le programme "gwsetup", lancez "gwsetup", allez dans le "menu principal" et sélectionnez "paramètres d'une base de données". Indiquez un mot de passe "magicien" et faites "Ok".
- Si vous n'utilisez pas "gwsetup", éditez votre fichier "toto.gwf" (pour une base qui s'appelle "toto"). Si ce fichier n'existe pas, créez-le en faisant une copie du fichier modèle "a.gwf" fourni avec la distribution. Mettez votre mot de passe dans la variable "wizard_passwd". Par exemple:

           wizard_passwd=xyzzy

- Si votre base de données est hébergée sur un site, demandez à l'administrateur du site de vous mettre un mot de passe "magicien". Passez toujours par lui, par la suite, si vous voulez changer ce mot de passe.

Quand un mot de passe "magicien" est installé, la page d'accueil (celle avec les drapeaux) vous donne une zone pour les mots de passe.

- En mode serveur, la page affiche "accès magicien" sur lequel vous pouvez cliquer: votre navigateur vous fera alors apparaître une fenêtre où vous devez mettre le mot de passe dans la zone prévue (la zone "utilisateur" est ignorée; vous pouvez y mettre ce que vous voulez).
- En mode CGI ou s'il y a une autorisation globale d'accès (voir ci-dessous), c'est une zone d'entrée qui est affichée. Entrez votre mot de passe et faites "Ok" (dans ce cas, le mot de passe est visible et se verra dans l'URL pendant la navigation).

Après l'entrée du mot de passe, la page d'accueil doit s'afficher à nouveau. Vous pouvez repérer que vous êtes en mode "magicien" car devrait s'afficher le texte cliquable "modifier famille" ainsi que "modifier notes".

Dans la navigation, dans les pages personnelles, vous aurez accès à "mise à jour".

### Protection des informations privées: accès "ami"

Si vous voulez protéger les informations privées de votre base, il faut mettre un mot de passe "ami". Les données privées concernent uniquement les personnes nées depuis moins d'un siècle et sont:

- Les dates et lieux de naissance, de décès, de mariage, etc.
- La profession.
- Les notes.
- L'image.
- Les "autres relations" (parrains, marraines, parents adoptifs, etc).

Les autres informations généalogiques (parents, enfants) restent toujours visibles.

S'il y a un mot de passe ami, seules les personnes ayant fourni ce mot de passe (ou le mot de passe "magicien") pourront voir les données privées.

Pour installer un mot de passe "ami", procédez comme pour le mot de passe "magicien" ci-dessus. Si vous passez par le fichier "toto.gwf", la variable s'appelle "friend_passwd".

### Restriction globale d'accès à une base de données

Si vous voulez que votre base de données ne soit visible que par certaines personnes, vous pouvez mettre une restriction globale d'accès.

Attention: cela ne fonctionne qu'en mode serveur. Si vous êtes en mode cgi, il faut utiliser les moyens fournis par le serveur HTTP dont vous dépendez (la présente documentation ne vous dit pas comment procéder, car cela dépend du serveur).

Il vous faut d'abord constituer un fichier d'autorisations. Ce fichier texte contient des lignes du genre "utilisateur:mot de passe". Par exemple:

         dupont:ex23zuu
         martin:2wxuz4

Pour installer ce fichier d'autorisation, procédez comme suit:

- Copiez votre fichier dans le répertoire des bases de données. Dans une installation standard, c'est le répertoire "gw". Puis éditez votre fichier "toto.gwf" (si votre base s'appelle "toto"; si ce fichier n'existe pas, faites une copie du fichier modèle "a.gwf" fourni avec la distribution). Mettez le nom du fichier d'autorisation que vous venez de constituer comme valeur de la variable "auth_file". Par exemple (si vous avez appelé votre fichier d'autorisation "toto.auth"):

           auth_file=toto.auth

- Si votre base de données est hébergée sur un site, demandez à l'administrateur du site en envoyant votre fichier d'autorisations.

Au moment d'accéder à la base de données, votre navigateur affichera une fenêtre où vous devrez donner un nom d'utilisateur valide et le mot de passe correspondant.

Dans l'exemple ci-dessus, il faudra mettre "dupont" dans la partie "utilisateur" et "ex23zuu" dans la partie "mot de passe", ou alors "martin" dans la partie "utilisateur" et "2wxuz4" dans la partie "mot de passe".

Si votre entrée n'est pas validée, vous n'aurez aucun accès à la base de données.

### Restriction globale d'accès au service gwd

Si vous voulez que le service gwd de votre site ne soit accessible que par certaines personnes, vous pouvez mettre une restriction globale d'accès au service. Cela s'applique à toutes les bases de données qu'il gère.

Les bases de données ne seront alors accessibles que par le protocole d'accès. Si, cependant, une certaine base a une restriction d'accès globale spécifique (voir section précédente), c'est plutôt cette restriction spécifique qui sera prise en compte.

Attention: comme pour la section précédente, cela ne fonctionne qu'en mode serveur, pas en mode cgi.

Il faut également constituer un fichier d'autorisations. Cela ne peut être géré que par l'administrateur du site: si votre base est hébergée ailleurs, cela ne vous concerne pas.

L'autorisation globale d'accès se fait dans les paramètres de la commande "gwd". L'option s'appelle "-auth" et doit être suivie du nom du fichier d'autorisations.

### Les robots

Il arrive que certaines personnes envoient des "robots" sur votre site. Ces robots sont des programmes qui vont explorer votre site de manière systématique, par exemple en partant d'une certaine page et en "cliquant" sur tout ce qui est cliquable et en recommençant sur les pages obtenues.

La plupart de ces robots sont de mauvaises idées, parce que le nombre de pages possibles est pratiquement infini. Par exemple, si le robot part d'une page personnelle, clique sur "calcul de parenté" puis sur le conjoint, ça va calculer tous les liens de parenté entre la personne et son conjoint, puis il peut encore cliquer sur tous les détails de ces liens, puis sur toutes les personnes intermédiraires, etc. etc.

L'idée des personnes qui lancent des robots est souvent de se dire: plutôt que de passer des heures à cliquer sur ce site intéressant, je vais y télécharger toutes les pages et les lire tranquillement ensuite, chez moi, en libérant ma ligne téléphonique.

Malheureusement, comme le service GeneWeb est un labyrinthe sans sortie, cela ne fera qu'une seule chose: saturer le disque de la personne avec des pages HTML.

Du côté du propriétaire du serveur, il n'est en général pas content d'être mitraillé de requêtes, pouvant aller parfois jusqu'à 10 par seconde, car:

- Cela ralentit son ordinateur,
- Cela ralentit les autres utilisateurs qui consultent le site normalement,
- Cela fausse complètement les statistiques d'accès au site,
- Cela donne l'impression désagréable d'être espionné.

Pourtant, les pages que GeneWeb fabrique indiquent explicitement aux robots (dans le protocole) de ne pas continuer l'exploration à partir de ces pages.

Les "bons" robots, ceux qui indexent les pages Web du monde entier, respectent ce protocole et n'insistent pas. Mais quand on lance un robot, on peut très bien lui dire de l'ignorer.

Contre ces derniers robots impolis, il existe l'option "-robot_xcl" de gwd. Elle est basée sur l'observation de la rapidité des requêtes provenant d'un même endroit.

Les paramètres sont deux nombres, séparés par une virgule. Le premier est un nombre "x" d'accès, le deuxième un nombre "y" de secondes. Si une adresse fait plus de "x" accès en moins de "y" secondes, l'adresse est alors automatiquement inscrite dans une liste noire et toutes les futures requêtes lui sont refusées avec un message approprié.

Exemple:

         gwd -robot_xcl 100,150

S'il y a détection de plus de 100 connexions en 150 secondes provenant d'un même endroit, l'adresse de provenance se retrouve interdite d'accès jusqu'à ce que le propriétaire du site décide de la "libérer".

Pour libérer les adresses interdites, le propriétaire du site doit simplement supprimer le fichier de nom "robot" qui se trouve dans le répertoire "cnt". Cela lui est d'ailleurs indiqué dans les traces d'accès.

### La liste noire

La liste noire permet d'interdire l'accès à un site GeneWeb à des adresses internet ou à des groupes d'adresses internet.

Il suffit de fabriquer un fichier qu'il faut appeler "gwd.xcl" et mettre dans le même répertoire que la commande "gwd".

Éditez ce fichier texte et indiquez-y les adresses que vous voulez refuser (une par ligne). Vous pouvez y mettre des "*" pour indiquer n'importe quelle séquence de caractères. Exemple:

         grand-mechant@loup.bois
         fournisseur-*@d.acces

Cela interdit d'accès les adresses "grand-mechant@loup.bois", "fournisseur-22@d.acces", "fournisseur-xx@d.acces", etc. Si vous mettez une ligne avec juste "*", toutes les adresses sont interdites (y compris la vôtre).

Retour vers Mode d'Emploi

Copyright (c) 1998-2005 INRIA - GeneWeb