GeneWeb - Restrictions d'accès |
Avec GeneWeb, vous pouvez:
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:
wizard_passwd=xyzzy
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.
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 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:
auth_file=toto.auth
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:
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).