Cliquez sur l'image pour tester

INTRODUCTION

Voici un petit script de test anti robot créé initialement en 2014, développé en PHP, utilisant des jetons (tokens) au format texte, demandant à l'utilisateur de copier un code affiché dans une image.

Concept du test:

Ce script permet de créer une protection classique: lorsqu'il est lancé, un code aléatoire est généré puis copié dans un jeton à usage unique sauvegardé sur le serveur. Une fois le jeton sauvegardé, le document HTML est affiché. Ensuite, ce document charge une image, générée à la demande, en envoyant une requête HTTP au serveur passant l'identifiant unique du jeton en paramêtre.

De cette façon, le code de protection n'est jamais inclus en "texte clair" dans le document, seul l'identifiant du jeton l'est, et il est impossible de connaitre le code sans visualiser l'image. C'est ainsi qu'on procède au test, en demandant à l'utilisateur de copier le code de protection dans le champ texte associé puis de valider son action. La dernière étape du processus compare le code envoyé au à celui précédemment enregistré dans le token, puis réagit en fonction du résultat.

La méthode de protection mise en oeuvre par ce programme, bien connue sur internet, est efficace contre les spams et de nombreux robots. Cepandant, il s'agit là d'un script basique qui ne protègera pas un site internet contre les robots plus sophistiqués, capables d'interpréter les caractères affichés dans une image. Il est donc tout à fait adapté, en l'état, à un site ayant une audience faible ou moyenne, mais devra être amélioré et accompagné d'autres systèmes de protection sur des sites ayant une audience forte ou subissant de nombreuses nuisances.

Le programme est distribué en tant que démo, dans l'espoir qu'il soit utile, sans aucune licence ni restriction. Vous pouvez le modifier et le redistribuer sans restrictions.

Détails techniques

Génération de l'image

Le script utilise la bibliothèque GD de PHP pour générer une image "à la volée".

Gestion des fichiers jetons

Chaque jeton créé est sauvegardé sous forme d'un fichier texte contenant le code de protection associé. Lorsqu'un code testé est correct, le fichier du jeton est automatiquement effacé du serveur. La durée de vie d'un jeton est d'une heure, et les jetons non utilisés sont automatiquement supprimés du serveur.

Utilisation par requête HTTP:

Le script est adapté à une utilisation par des requêtes HTTP. Ainsi, le programme peut-être utilisé par n'importe quel programme bénéficiant d'une connexion au serveur. Le formulaire offert avec le script devrait vous permettre d'en comprendre le fonctionnement.

Protection des données

Le dossier de sauvegarde des données est protégé par un fichier HTACCESS, empêchant toute intrusion depuis l'extérieur.

Installation:

Ce programme peut être facilement intégré dans un site ou un script. Pour une protection optimale, il est nécessaire de modifier le mot de passe du fichier HTPASSWD en utilisant un mot de passe long, contenant des chiffres et des lettres, tel un Hash créé par l'algorithme SHA-256.

En cas de problème avec l'image, assurez-vous que la bibliothèque GD est intégrée à votre version de PHP et que l'adresse du script utilisé pour les requêtes HTTP est correcte.

Configuration du script

Le script dispose d'un fichier de configuration ("captcha-config.php") permettant de modifier certaines options.

CONTRIBUTION

TÉLÉCHARGEMENT

Creative Commons License

Ce document crée par Christophe Leblanc est publié sous licence Creative Commons Attribution-ShareAlike 4.0 International License.