GeneWeb - Restrictions d'accès |
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.
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".
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".
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.
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.
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.
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).