Restrictions d’accès, robots et liste noire

From GeneWeb
Jump to: navigation, search
150px-Geographylogo svg.png Language: English • français

Pour compléter le système de mots de passe amis et magiciens protégeant les modifications en ligne et les informations privées, il existe plusieurs moyens de restreindre l’accès global aux bases de données ou au service gwd. Quelques astuces permettent d’empêcher les robots de nuire et la liste noire permet une interdiction d’accès totale.

Ces restrictions d’accès ne fonctionnent qu'en mode serveur. En mode CGI, il faut utiliser les moyens donnés par le serveur HTTP dont vous dépendez.

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

Attention : cette fonctionnalité n'est pas disponible en mode CGI.

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.

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 bases/. 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

Attention : cette fonctionnalité n'est pas disponible en mode CGI.

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.

Il faut également constituer un fichier d'autorisations. Cela ne peut être géré que par l'administrateur du site, donc 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.

Gestion des 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.

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 gwd.xc" et de le 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).

Gestion du serveur GeneWeb

Le serveur GeneWeb peut être géré avec l'outil gwsetup. Pour des raisons de sécurité, cette gestion ne peut être effectuée qu'à partir d'une adresse IP fournie dans le fichier only.txt (voir distribution pour son emplacement). La valeur par défaut de cette adresse est 127.0.0.1 et peut être remplacée par n'importe quelle adresse IP valide (une seule adresse dans ce fichier).


Manuel GeneWeb

Rembrandt Old Man Reading a Book.jpg

Utiliser et gérer une base généalogique

Annexe technique