Qu'est-ce que le captcha. Contourner le captcha à l'aide d'un proxy. Entrée Captcha comme revenu supplémentaire

Afin que le système Internet soit moins frauduleux et que divers types d'utilisateurs sans scrupules soient différents systèmes protection, dont l'une est une demande - pour déchiffrer le code déformé et l'écrire dans une ligne vide, c'est-à-dire que vous devez entrer le captcha.

    • Comment écrire un captcha régulier et complexe
    • Programmes automatiques pour contourner les captchas

Rien de compliqué et difficile à ce processus non, cela ne vous prendra pas plus de quelques secondes pour écrire un tel code, vous ne perdrez donc pas trop de temps sur ce genre de vérification.

Il convient également de noter qu'un tel système de protection est assez fiable, mais il existe toujours des options pour le pirater, c'est-à-dire que vous pouvez faire entrer le captcha automatiquement, c'est-à-dire qu'il est reconnu par le robot, dans ce cas le programme, et l'utilisateur continue d'effectuer divers processus sans être distrait par la reconnaissance et l'écriture de captchas.

Si vous êtes un utilisateur typique et que vous ne prévoyez rien d'interdit, vous ne rencontrerez pas souvent de tels captchas, ce qui signifie que vous n'avez pas besoin d'un programme pour pirater ce système de protection.

Il ne vous sera pas difficile de consacrer une fois par jour, par exemple, quelques secondes, à reconnaître un tel code ?

De tels programmes sont populaires parmi ceux qui, par exemple, gagnent de l'argent en créant un grand nombre de likes dans réseaux sociaux ou, par exemple, dans le processus de recrutement d'un grand nombre de personnes dans un groupe. Il s'avère que le système vous demande d'écrire le code s'il doute que ce processus soit effectué par l'utilisateur, et non par un programme automatique. Lorsque vous saisissez un captcha, vous confirmez que vous êtes un simple utilisateur, pas un robot.

Comment écrire un captcha régulier et complexe

Ainsi, un captcha ordinaire est une fenêtre dans laquelle se trouve en haut une image déformée, le plus souvent des symboles : un ensemble de lettres et de chiffres, et en bas il y a une ligne vide où vous devrez saisir le code décodé. Comme vous pouvez le voir, il n'y a rien de compliqué dans ce processus.

L'utilisateur doit savoir qu'il existe différents types de captchas :

  • alphabétique;
  • numérique;
  • lettres + chiffres ;
  • captchas russes;
  • captchas anglais;
  • captchas avec images (où il est nécessaire de positionner correctement l'image, en la tournant dans différentes directions;
  • captchas comme exemples (soustraction, multiplication, etc.). Ici, il est nécessaire de résoudre une sorte d'équation arithmétique, c'est très simple, comme 2 + 2, etc.
  • captchas complexes avec des tâches.

Considérez les trois dernières options, elles sont plus compliquées que les autres captchas énumérés ci-dessus. Vous ne pourrez pas écrire de code dans le cas d'une image captcha, car vous n'avez pas besoin d'écrire un captcha ici, vous devez le faire pivoter pour que l'image ait l'air logique, c'est-à-dire qu'elle soit correctement placée . Si vous voyez un captcha avec un exemple, il vous suffit de le résoudre, c'est-à-dire que dans une ligne vide, vous devez donner la bonne réponse et ne pas réécrire l'exemple lui-même dans le graphique.

En ce qui concerne le captcha complexe, vous devrez ici terminer la tâche. Écrivez généralement dans une chaîne, une sorte de réponse est nécessaire. On vous donnera peut-être un lien sur lequel vous devrez aller chercher, par exemple, le numéro de téléphone d'une entreprise. Trouvez-le et entrez-le dans une ligne, captcha. Cela ne prendra pas plus d'une minute, d'ailleurs, de tels captchas ne se rencontrent que très rarement, le plus souvent ils se trouvent sur des sites commerciaux sérieux, où vous ne pouvez tout simplement pas aller.

Regardez la vidéo - Comment écrire un captcha japonais complexe

Programmes automatiques pour contourner les captchas

Aujourd'hui, presque tous les sites ont un système de sécurité en cours de révision. Ce qui est amusant, c'est que les créateurs de sites pensent qu'aujourd'hui il est possible d'avoir une telle protection, et ils l'installent précisément pour cette raison, mais pas par désir de sécuriser la ressource qu'ils ont créée. Un utilisateur ordinaire commence de plus en plus à faire face à des demandes sous forme de captchas, et par conséquent, cela devient une action ennuyeuse. C'est pourquoi de nombreux utilisateurs cherchent des moyens d'éviter les captchas afin de programme automatique les a reconnus.

Il existe des programmes qui peuvent vous sauver de ces codes ennuyeux. Les plus populaires sont considérés programmes gratuits, que tout le monde peut télécharger et installer, mais les plus efficaces sont derniers programmes reconnaissance des captchas, pour l'installation desquels l'utilisateur devra payer.

J'ai décidé de faire une petite pause dans les publications sur ce framework PHP et de passer à autre chose en tant qu'"activité de plein air".

Par conséquent, j'ai décidé de vous parler d'un mécanisme de cyberdéfense très courant qui vous permet d'empêcher de nombreuses attaques automatisées sur des sites Web et qui est utilisé aujourd'hui jusqu'à 320 millions de fois par jour.

Avez-vous une idée de quoi il s'agira?

Tout ce qui précède concerne le CAPTCHA, qui a été vu et utilisé par probablement 90% de tous les utilisateurs d'Internet, mais, malheureusement, tout le monde ne sait pas exactement ce qu'est un CAPTCHA et quelles tâches il peut résoudre.

Qu'est-ce que le captcha ?

Dans les moteurs de recherche, de nombreuses personnes saisissent chaque jour la requête "Traduction CAPTCHA". Cependant, vous ne trouverez pas la bonne réponse à cette question dans cet article ou dans d'autres articles similaires.

CAPTCHA n'est pas seulement un terme spécialement inventé, mais une abréviation des mots test de Turing public complètement automatisé pour distinguer les ordinateurs et les humains, ce qui signifie littéralement "test de Turing public entièrement automatisé pour reconnaître les ordinateurs et les personnes". Par conséquent, ce mot est correctement écrit en majuscules.

Dans le segment russophone d'Internet, il est souvent appelé « captcha », car C'est ainsi que se prononce le CAPTCHA en russe. Dans le même temps, les majuscules sont omises, c'est pourquoi pour certains lecteurs, l'histoire décrite de l'apparition du mot "captcha" peut être une nouveauté, mais en même temps, elle aide à tracer le lien logique entre celui-ci et le " test de Turing automatisé".

Je pense que le décodage de l'abréviation elle-même indique parfaitement ce qu'est un CAPTCHA. La seule ambiguïté est peut-être le test de Turing... Si vous pensez qu'à cet endroit je vais vous charger un tas de formules et de définitions, alors vous vous trompez 🙂

Je vais vous dire quelques mots le plus clair possible pour élargir vos horizons, sinon du coup vous obtenez un mot dans une grille de mots croisés, mais vous ne saurez pas ce que c'est 🙂

Il y avait dans le monde (à savoir, au début du XXe siècle) un mathématicien anglais nommé Alan Turing. Une personnalité, soit dit en passant, est assez connue dans les cercles étroits, qui a trouvé beaucoup de bonnes choses, pour lesquelles ils ont même commencé à tourner des films sur lui (c'est exactement l'homme joué par Benedict Cumberbatch dans le film " Le jeu d'imitation").

Ainsi, une fois que la pensée lui est venue « une machine peut-elle penser ? Comme Alan Turing n'était pas une personne stupide, comme vous l'avez peut-être remarqué, le résultat de ses réflexions était un test dont le but est précisément de déterminer lequel des interlocuteurs est un humain et qui est un ordinateur.

Le test a été décrit pour la première fois en 1950 et a été nommé d'après son créateur, par lequel il est connu à ce jour - le test de Turing.

Le test de Turing classique est une situation dans laquelle une personne (juge) communique avec un ordinateur et une personne réelle des messages texte... Si le juge ne peut pas déterminer « xy de xy », c'est-à-dire qui des interlocuteurs est un être humain et qui est un ordinateur, alors la machine est considérée comme ayant réussi le test.

Mais il est faux de penser qu'exposer un ordinateur est très simple et facile

Diverses astuces sont utilisées pour embrouiller le juge. Tout d'abord moi-même format de texte communication afin qu'une personne ne puisse pas reconnaître une voiture par la voix ou d'autres signes, et que l'ordinateur puisse démontrer son intelligence, et non sa capacité à reconnaître la parole humaine (bien que, à en juger par les vidéos d'aujourd'hui avec des robots, pour ces gars-là, il n'y aura bientôt plus problème ni avec le premier, ni avec le second).

De plus, des messages humains et informatiques sont envoyés à intervalles réguliers afin que le juge ne puisse pas trouver l'ordinateur en vitesse de réponse.

Mais, malgré toutes ces astuces, déjà en 1966 (wow "déjà" - après 16 ans !) Programme d'ordinateur avec le nom poétique ELIZA, capable de passer ce test... De nombreux camarades abscons doutent encore que l'expérience avec Eliza soit considérée comme un test de Turing ou non, mais il n'en reste pas moins que le morceau de fer a pu dérouter les gens.

CAPTCHA est donc un test de Turing moderne qui aide à éliminer les robots des personnes dans mode automatique... Un algorithme informatique n'agit que comme juge. Pour cette raison, un captcha est parfois appelé test de Turing inverse.

Et si vous ne réussissez pas ce test, alors par vos actions vous dites que vous n'êtes pas différent d'un robot sans âme, et parfois encore plus stupide quand ce dernier a pu le passer

De plus, dans certains cas, avec un certain nombre de tentatives infructueuses, vous pouvez toujours vous faire bannir par l'adresse IP sur le site. J'espère que cela vous motivera à aborder la saisie captcha de manière plus responsable la prochaine fois :)

Soit dit en passant, malgré le fait que le test de Turing lui-même ait été inventé en 1950, le CAPTCHA est un phénomène assez jeune. Des inventions similaires au captcha moderne sont apparues relativement récemment - en 1997, et le terme lui-même a été inventé en 2003.

Je pense que maintenant vous avez compris ce qu'est un captcha, comment il est apparu et quand. La seule question est « Pourquoi ? » C'est une bonne question, donc je n'attendrai pas longtemps avec la réponse

La question est, pourquoi avez-vous même eu besoin de déterminer à l'aide du CAPTCHA qui est venu sur le site : une personne ou un robot ?

Le fait est que les robots dans le monde d'Internet sont spéciaux programmes automatisés, qui ne sont pas toujours créés pour le bénéfice. Cela peut être la propagation de spam, voire le piratage d'une ressource.

Soit dit en passant, même en essayant de forcer automatiquement des mots de passe ou d'envoyer du spam à des sites non protégés, il est déjà possible de leur causer de graves dommages, créant une lourde charge sur le serveur, à cause de laquelle le site cessera de fonctionner.

Par conséquent, le but le plus important du captcha est d'assurer la sécurité du site en bloquant les attaques et en effectuant des actions automatiques à l'aide de divers programmes malveillants.

Une autre réponse à la question de savoir pourquoi un CAPTCHA est nécessaire est la reconnaissance des livres numérisés et autres publications imprimées. Comment?

Si vous avez vous-même déjà essayé de numériser des livres vous-même à l'aide d'Adobe FineReader ou autre (je ne sais pas pour vous, mais au cours de mes années d'études, je l'ai souvent fait lors de la rédaction de résumés et de dissertations 🙂), alors vous savez que la reconnaissance est loin à partir de 100%.

Ceci malgré le fait que la plupart des livres sont imprimés en caractères typographiques standard. Pour les manuscrits, la reconnaissance logicielle est presque nulle.

Ainsi, les créateurs de CAPTCHA (en particulier, ils ont été les premiers à utiliser ce mécanisme les créateurs de Google reCAPTCHA) ont décidé de profiter de cette circonstance. Ils ont inventé des mots non reconnus par programmation, qui ont ensuite été affichés sous forme d'images captcha avec une demande à de vraies personnes d'entrer ce qu'elles ont vu.

Ainsi, une base de données d'options pour décoder les mots difficiles à reconnaître a été collectée et en même temps les utilisateurs ont prouvé qu'ils sont de vraies personnes, car ont pu reconnaître ce qu'ils ont vu, ce qui nous distingue des robots. Quant à moi - génial, comme tout dans Google, en fait 🙂

Le seul moment qui pour moi personnellement dans toute cette histoire est resté flou - comment les gens ont-ils passé le captcha avec des personnages difficiles à reconnaître, si pour cela il peut même y avoir plusieurs réponses correctes ? Google, bien sûr, ne dévoilera pas ses secrets.

Mais si je développais personnellement ce mécanisme de reconnaissance de texte par les utilisateurs utilisant captcha, je sélectionnerais une version plus ou moins similaire à ce qui est montré dans l'image, afin que vous puissiez vérifier la réponse de l'utilisateur avec.

Ou, il a simplement compté l'option saisie par l'utilisateur comme une option de réponse, et l'utilisateur lui-même proposerait certainement de saisir à nouveau le captcha avec une séquence de caractères plus lisible pour laquelle il existe une réponse, afin que l'utilisateur ne pense pas que il se faisait berner et ne produisait pas le nombre de tentatives incorrectes, pour lesquelles ils sont parfois bannis.

Soit dit en passant, j'aime beaucoup plus la deuxième option, car en l'utilisant, vous pouvez collecter une base de données de réponses correctes des utilisateurs, avec environ 10 captchas prêts à l'emploi avec des réponses à l'entrée. Le reste sera collecté automatiquement. Tout ce que nous avons à faire est d'analyser et de traiter les réponses des utilisateurs.

Grâce à tout ce qui précède, les créateurs de reCAPTCHA font la promotion de leur projet sous le slogan "Stop spam - read books!" Et je dois dire que ça marche

Selon les informations officielles du créateur de reCAPTCHA, Luis von Ahn, son captcha est utilisé jusqu'à 100 millions de fois par jour, ce qui conduit à environ 2,5 millions de livres lus par an.

Google a acquis reCAPTCHA en 2009 et a commencé à l'utiliser pour numériser une archive des journaux du New York Times de 1851 à nos jours et des livres de Google Books jusqu'en 2011. En 2012, lorsque ces ressources ont été épuisées, Google a commencé à reconnaître les numéros de bâtiments et les images de Google Maps et Google Street Views, qui est un autre défi qui peut être résolu à l'aide de captcha.

Pourquoi ai-je soudainement décidé de parler de manière sélective de Google reCAPTCHA ? Oui, car il s'agit d'un produit Google, qui est considéré comme un générateur de divers standards dans le domaine du web, de la cybersécurité et d'autres domaines. Par conséquent, reCAPTCHA est la norme non officielle pour le captcha aujourd'hui - tout est simple 🙂

Par conséquent, dans le texte de cet article, il clignotera plus d'une fois.

Types de captcha

Captcha est basé sur le principe décrit ci-dessus : créer une tâche qu'une personne peut gérer, mais pas le programme.

En règle générale, la tâche est choisie pas très difficile afin que la plupart des gens puissent y faire face. Au final, le captcha n'a pas pour but de déterminer l'intelligence de l'utilisateur, mais simplement sa capacité à reconnaître ce qu'il a vu ou entendu et à penser.

Cependant, je ne serai pas surpris que sur certains forums mathématiques vous puissiez trouver un captcha sous la forme d'une équation différentielle ou d'un problème du test d'Eysenck (et certainement pendant un certain temps) afin de filtrer les personnes ayant un faible QI 🙂

Initialement, pour atteindre cet objectif, un CAPTCHA était une chaîne de lettres, de chiffres et d'autres symboles déformés qui étaient spécialement passés à travers divers filtres anti-bruit, tournés et pliés. Mais au fil du temps, d'autres types de CAPTCHA sont apparus, éliminant les robots des humains en utilisant d'autres tâches.

1. Captcha graphique

Comme déjà mentionné, le type de captcha le plus ancien. C'est une image avec une séquence de caractères déformés (lettres, chiffres et caractères spéciaux).

Le spécifié chaîne de texte mis en œuvre sous la forme d'une image, où les lettres sont inclinées, barrées, divers filtres de couleur et de bruit sont superposés à l'image. Tout ce qui doit être fait pour résoudre le captcha dans ce cas est d'entrer les symboles montrés dans les images dans un champ spécial sous forme de texte.

Il est toujours utilisé avec succès par des ressources telles que Yandex et Vkontakte.

J'ai moi-même été surpris par une si belle version de Yandex captcha, que je suis tombée sur juste au moment d'écrire cet article 🙂

2. Captcha logique

Dans ce cas, le captcha vérifie la présence de logique chez la personne qui le passe, et donc la capacité de réfléchir à l'aide de diverses tâches.

Ça peut être:

  • exemples arithmétiques (par exemple, 2 + 3 =?);
  • tâches pour la sélection de certains objets parmi ceux proposés (trouver une femme parmi toutes les photographies, un homme avec une main levée, des animaux, des voitures, etc.) ;
  • spécifier un chiffre spécifique à partir d'une séquence de nombres (par exemple, sélectionnez le troisième chiffre du nombre 2312145) ;
  • choix d'un mot commençant par une certaine lettre (par exemple, vous devez choisir un mot commençant par "c" parmi "Chewing-gum, planche, chaise");
  • écris le nombre de l'image en lettres et vice versa.

Le CAPTCHA logique le plus intéressant que j'ai vu est le CAPTCHA Facebook, pour lequel vous devez sélectionner le nom de votre ami montré sur la photo. Cela ressemble à ceci :

3. Captcha comportemental

Dans ce cas, l'utilisateur doit effectuer une certaine action afin de prouver qu'il n'est pas un robot.

Cela peut être n'importe quoi. A commencer par la coche banale à côté de la case "Je suis d'accord avec les termes du contrat", que beaucoup d'entre vous ont vu et qui, en fait, est aussi un captcha. Et pour finir avec quelque chose de plus sophistiqué 🙂

Certains des exemples les plus courants de captcha comportemental sont les suivants :

  • déplacer le curseur vers une position spécifique ;
  • rotation de l'image à la position spécifiée (verticale, horizontale).

Auparavant, les captchas comportementaux et logiques étaient encore très populaires en même temps en composant une image à partir de fragments (le captcha dit puzzle, car il fonctionnait selon ce principe).

Mais le captcha comportemental le plus intéressant que j'ai rencontré est un captcha radio-technique spécialisé, qui ne peut être passé que par des experts en ingénierie radio. Mais il y a une incitation à entrer dans la faculté d'ingénierie radio et à étudier pendant 5 ans à l'université 🙂

4. Son captcha

Toutes les options CAPTCHA ci-dessus ne présentent aucune difficulté pour les vrais utilisateurs de sites, car pour les résoudre, la perception visuelle d'une personne est suffisante, ce que les programmes informatiques ne possèdent pas.

Mais ici se pose la question : comment être des utilisateurs de PC malvoyants voire aveugles ? Le captcha audio a été créé spécialement pour cette catégorie de personnes.

Pour être honnête, personnellement, je ne comprends pas très bien comment une personne aveugle pourra même accéder au bouton d'alimentation du captcha du son et voir où entrer les caractères, mais au moins elle pourra le parcourir, comme le prétendent les développeurs.

Tout le monde l'a probablement vu sur Google reCAPTCHA.

Pour être honnête, je n'ai pas rencontré de captcha sonore indépendant. C'est peut-être le cas sur certaines ressources pour les malvoyants, mais je n'y suis pas un visiteur fréquent.

Pour cette raison, j'ai posté vue donnée CAPTCHA à la fin de la liste.

En ce qui concerne le désormais populaire reCAPTCHA de Google - si vous l'avez étudié attentivement, vous pouvez vous assurer qu'il ne fait référence à aucun type spécifique de CAPTCHA, mais qu'il est combiné.

Dans la première version de reCAPTCHA, il combinait des captchas graphiques et audio, et depuis 2015, lorsque noCAPTCHA reCAPTCHA est apparu, il est devenu à la fois des captchas comportementaux, logiques et sonores. Celles. il a un degré de protection supplémentaire.

Où puis-je trouver des captcha sur le site

Comme nous l'avons déjà découvert, le CAPTCHA est utilisé sur les sites Web afin de détecter les robots et d'empêcher leurs actions. Par conséquent, afin de déterminer où le captcha est utilisé, vous devez dresser une liste des actions que les robots effectuent le plus souvent sur les sites.

Parmi eux:

  1. Envoi de spam sous forme de commentaires avec des liens vers d'autres ressources.
  2. Enregistrement des utilisateurs pour effectuer diverses actions afin de pirater le site et, encore une fois, d'envoyer du spam.
  3. Choisir un mot de passe pour accéder au site sous Compte un utilisateur existant.
  4. Cheat likes, amis, vues, téléchargements et autres actions pour lesquelles vous pouvez obtenir de l'argent afin de gagner de l'argent sans prendre aucune mesure.
  5. Robots d'analyse qui volent le contenu des sites Web. Maintenant, pour de telles choses, vous pouvez obtenir une interdiction des moteurs de recherche, mais certains magasins en ligne, je pense, le font toujours.

Par conséquent, le captcha est installé pour empêcher l'exécution automatique de ces actions, et donc le plus souvent le captcha se trouve aux endroits suivants :

  1. Formulaire d'inscription sur le site.
  2. Formulaire d'autorisation sur la ressource.
  3. Formulaire pour ajouter des commentaires.
  4. Formulaire de récupération de mot de passe.
  5. Formulaire de téléchargement de fichier.

Parfois, un CAPTCHA apparaît lorsqu'une action est effectuée trop souvent (comme, ajouter des amis, cliquer sur des publicités, etc.).

Mais pour la plupart, comme vous l'avez peut-être remarqué, le captcha reste un élément indispensable de divers formulaires Web, à travers lesquels l'utilisateur interagit avec le site. Si vous êtes intéressé, je vous recommande de lire l'article sur le lien, qui, en plus de décrire le principe de fonctionnement, contient 2 exemples pratiques d'installation de captcha sur le site de vos propres mains.

Ceci conclut l'article d'aujourd'hui sur ce qu'est un captcha. Dans ce document, j'ai essayé de vous expliquer ce qu'est un CAPTCHA dans le langage le plus compréhensible et le plus accessible, et nous avons également expliqué pourquoi il est nécessaire et quels types de CAPTCHA peuvent être trouvés aujourd'hui.

Dans les publications suivantes, je vais vous expliquer comment fonctionne le captcha, considérer le processus d'installation de reCAPTCHA sur un site et comment le développer à partir de zéro, ainsi que sur les webmasters et utilisateurs ordinaires sans site Web et sans connaissances particulières.

Partagez votre opinion dans les commentaires sous l'article et n'oubliez pas de vous abonner aux mises à jour du projet pour rester au courant de la publication de nouveaux articles.

Et pour le dessert, je porte à votre attention une vidéo qui m'a inspiré pour écrire cet article et raconte en détail le captcha et, en particulier, Google reCAPTCHA.

Faites le plein de pop-corn et profitez de votre visionnage.

Probablement, il n'y a pas d'internaute qui, au moins une fois dans sa vie, n'aurait à saisir les « symboles de l'image » dans le champ approprié du site. L'importance de cette action est souvent expliquée : distinguer une personne d'un robot. Mais la façon dont la distinction est faite peut ne pas être claire pour certains. Et le mot d'origine étrangère - captcha - est complètement nouveau dans la langue russe et peut donc introduire une ambiguïté dans le processus.

Qu'est-ce que le CAPTCHA ? Il s'agit d'un test contrôlé par ordinateur qui permet, avec une précision variable, de déterminer si un utilisateur appartient à l'une des catégories : une personne ou un ordinateur (robot, bot). De cette façon, vous pouvez empêcher les inscriptions automatiques auprès des services, par exemple, pour éviter les envois de spam. Les éléments suivants sont utilisés comme formes problématiques dans les captchas :
une séquence de caractères à saisir,
une énigme à résoudre,
exemple arithmétique, dont la réponse doit être trouvée et saisie dans le champ;
ensembles d'images, dans lesquelles vous devez marquer toutes les images contenant un certain objet, etc.

Ces formulaires peuvent être reconnus par une personne, mais pas dans tous les cas - par un ordinateur. Les problèmes exprimés dans les formulaires peuvent être résolus par une personne, mais pas non plus dans tous les cas par un ordinateur.

Un exemple de fonctionnement du captcha
Lors de la génération d'une séquence de caractères, les caractères de la langue sont placés sur un arrière-plan qui peut se fondre dans les caractères, et ils peuvent eux-mêmes être incurvés. Il est difficile pour un robot de distinguer un signe d'un élément d'arrière-plan et de reconnaître tel ou tel symbole courbe, les ordinateurs échouent donc souvent à de tels tests.

La capacité de passer le test par un ordinateur
Dans certains cas, les robots réussissent le test et effectuent des actions contre lesquelles les gestionnaires de ressources souhaitent les protéger. Ceci est possible pour plusieurs raisons :
l'image est reconnue ;
la réponse à la question sur l'image est intégrée dans le nom du fichier image, qui se trouve dans code source pages ;
l'algorithme de construction des formulaires est reconnu et la sélection des options de réponse est effectuée, etc.

Ainsi, dans les réponses aux questions « qu'est-ce que le captcha ? », « A quoi ça sert ? », « Sous quelles formes est-il mis en œuvre ? et "pouvez-vous le contourner ?" il n'y a pas d'aspects compliqués. Cependant, il est important de garder à l'esprit qu'il est impossible de garantir une protection complète du site à l'aide de tests CAPTCHA, mais il est tout à fait possible de filtrer partiellement un grand nombre de requêtes automatiques (machines) pouvant conduire au spam.

CAPTCHA- raccourci pour l'anglais Test de Turing public entièrement automatisé pour distinguer les ordinateurs des humains- test de Turing public entièrement automatisé pour faire la distinction entre les ordinateurs et les personnes. En runet, vous pouvez souvent entendre la transcription "Captcha".

Essentiellement CAPTCHA il s'agit d'un petit test qu'une personne peut facilement gérer, mais un ordinateur est de plusieurs ordres de grandeur plus difficile à résoudre ce problème. Les tests sont basés sur le travail des organes des sens humains et de la logique.

Ce test est utilisé dans un seul but - empêcher les robots d'accéder à l'envoi ou à la publication d'informations de spam sur les sites, en téléchargeant tout matériel.

Méthodes CAPTCHA

La grande majorité des méthodes CAPTCHA offrent une reconnaissance visuelle informations graphiques, moins souvent l'analyse et/ou certains calculs et saisies d'informations reconnues dans un domaine particulier. Considérons les méthodes les plus courantes.

1. La méthode la plus courante : l'utilisateur est offert entrez les chiffres / symboles affichés dans l'image... En règle générale, les symboles sont déformés, flous, bruyants avec des interférences.

2. L'utilisateur est invité image avec des chiffres écrits dans le texte et entrez des chiffres.

3. L'utilisateur est invité à effectuer un simple action arithmétique ou logique et entrez le résultat. La méthode peut être compliquée par une combinaison avec la précédente.

4. Méthode basée sur sentiments, connaissances et sensations humaines- choisissez celle qui répond à la question posée parmi la série d'images proposée. Par exemple, choisissez un beau visage parmi plusieurs visages. Ou choisissez une pomme parmi les fruits proposés.

5. Méthode basée sur reconnaissance vocale humaine.

5. Vidéo-CAPTCHA... N'importe quel Trois premiers méthodes, dans lesquelles, au lieu d'une image, des informations sont transmises à l'utilisateur à l'aide d'une séquence vidéo, où les lettres et les symboles sont en mouvement constant.

Les options 1, 2 et 3 sont faciles à transférer d'un service à l'autre et facilement personnalisables. Ils ne sont pas exigeants en hébergement, gourmands en ressources. Dans le même temps, le degré de protection reste suffisamment élevé (avec réglage correct). Les méthodes 4, 5, 6 nécessitent une configuration ou une connexion plus sérieuse à des services spécialisés qui fournissent des services CAPTCHA.

La plus courante est la méthode 1 - dupliquer les caractères et les lettres affichés dans un champ spécial. Les méthodes basées sur les connaissances et les sentiments humains, ainsi que celles associées à des actions arithmétiques ou logiques, dépendent de la mentalité, de l'alphabétisation du visiteur ou des normes morales adoptées sur le territoire de résidence. Cela peut donner des interprétations incorrectes du captcha, respectivement, des erreurs lors des tests. Naturellement, de telles actions peuvent entraîner un afflux de visiteurs hors du site.

Erreurs, vulnérabilités et contre-mesures / méthodes de protection

domicile erreur possible- une erreur ou une formation professionnelle insuffisante du programmeur pour écrire ou installer le code captcha. Erreurs de programmation Captcha permettre aux bots de contourner la sécurité, laissant les vrais visiteurs réussir le test.

Un exemple assez frappant. Appeler une image CAPTCHA en spécifiant explicitement le code de vérification en le passant en paramètre à l'appel d'image : , où "Hqhqhq" apparaît comme le code de confirmation demandé. La vulnérabilité d'implémentation est évidente : le bot scanne le code de la page et extrait le code de vérification, le substituant dans le champ approprié. Votre protection par un bot est passée en une fraction de seconde, et une personne réelle aura besoin de plusieurs secondes voire minutes pour saisir le code de vérification.

Existe méthode de la force brute utilisé par les robots. Captcha toujours associé à la session d'un visiteur. Avec une variante relativement petite des valeurs CAPTCHA, le bot, enregistrant la session, parcourt séquentiellement toutes les options, devinant tôt ou tard la valeur correcte.

  • Didacticiel

Depuis combien d'années Habr existe - pendant tant d'années, des articles sur le prochain captcha y apparaissent régulièrement - qu'il s'agisse d'un script pour générer une image, d'une nouvelle idée de captcha avec des chats, etc. L'exemple le plus récent qu'une personne ne comprend pas très bien - comment le captcha devrait fonctionner après tout (voir le texte du message et les derniers commentaires), mais en même temps partage ses idées fausses avec la communauté. On a l'impression que le captcha est tel terre inconnue pour la plupart des développeurs - à la fois pour ceux qui le fixent simplement au formulaire suivant dans l'espoir qu'il fonctionnera "hors de la boîte", et pour ceux qui proposent des captchas comme ceux sur lesquels vous devez choisir une image avec un chat à partir de plusieurs photos.

L'article contient informations utiles pour ceux qui utilisent captcha sur leur serveur, au lieu de faire confiance à un service tiers comme reCaptcha.

Et pour la graine - si vous pensez qu'un tel contrôle de captcha fonctionnera :
if ($ _ POST ["captcha"] == $ _SESSION ["captcha"]) renvoie vrai ; (exemple tiré de la pratique)
alors vous vous trompez profondément.

Captcha

Par définition, le captcha est un test de Turing public automatisé (un test qui peut être réussi par un humain, mais pas par un ordinateur). Dans cet article, je vais examiner les propriétés d'un captcha en utilisant l'exemple de son type le plus courant - le texte dans une image, bien que presque tout ce qui est écrit soit également applicable à tout type de captcha.

Deux propriétés principales du captcha

Tout captcha doit avoir deux propriétés, sans lesquelles il ne fonctionnera pas :

Résistance de reconnaissance- une propriété qui protège un captcha d'être reconnu par un algorithme - par exemple, un système de reconnaissance de texte. Assure qu'une personne peut lire le texte de l'image, mais pas l'ordinateur.
Anti-exemple : le captcha standard du forum phpBB 2.x n'avait pas une telle propriété - en raison de la relative facilité de reconnaissance, des scripts sont apparus qui spammaient tous les forums d'affilée, forçant les webmasters à changer le captcha pour un plus persistant.

Résistance à deviner- une propriété d'un captcha qui ne permet pas de deviner sa valeur en un petit nombre de tentatives (moins de 1000). Si l'ensemble des valeurs captcha possibles est petit, le programme ne sera pas difficile à deviner en le sélectionnant au lieu de le reconnaître.
Anti-exemple : captcha arithmétique comme "1 + 2" (itérer sur des nombres de 1 à 20 donnera bientôt un résultat).
Anti-exemple : choisissez parmi plusieurs images celle qui représente un chat.

Vérification du captcha

La valeur de vérification doit être stockée sur le serveur et non transmise avec l'image au navigateur. Pour faire correspondre le visiteur et la valeur correcte du captcha, vous devez utiliser une certaine clé qui est transmise avec le captcha (identifiant de session, numéro de captcha, etc.)
Anti-exemple : si vous transférez le captcha lui-même et la valeur pour sa vérification (y compris cryptée), alors une personne n'a besoin de reconnaître un tel captcha qu'une seule fois puis d'utiliser la combinaison "réponse" - "valeur à vérifier" dans son script ( selon le lien au début du post juste un tel cas)

Avant de vérifier la réponse, vous devez vous assurer qu'elle n'est pas vide. Sinon, l'attaquant peut passer une valeur vide et passer le captcha sans télécharger d'image ni supprimer l'identifiant de session en cours. comparera deux chaînes vides (en PHP, une valeur inexistante est égale à une chaîne vide).
Anti-exemple : le code que j'ai déjà mentionné if ($ _POST ["captcha"] == $ _SESSION ["captcha"]) renvoie true ;
De plus, ce code a été écrit par un programmeur expérimenté.

Après vérification, la valeur captcha enregistrée doit être supprimée. Si cela n'est pas fait, un attaquant pourra utiliser valeur donnée encore un nombre illimité de fois. Oui, lors de la mise à jour de la page avec le formulaire, le captcha est également mis à jour (soit lors de la génération d'un formulaire, soit lors de la génération d'une image), seul le script peut ne pas charger à nouveau le formulaire (il est à noter que cela n'a pas d'importance si le site utilise des jetons csrf jetables pour les formulaires).
Anti-exemple : un hypothétique formulaire de connexion, dans lequel il suffit de saisir correctement une fois le captcha, puis de forcer brutalement le mot de passe avec un script, évitant ainsi la régénération du captcha sur le serveur.

Captcha pare-balles

Protection contre la force brute. Si votre captcha est résistant à la reconnaissance, mais peu résistant à la force brute (par exemple, vous n'avez qu'à lire 3-4 chiffres dessus), il est conseillé de limiter le nombre de réponses incorrectes "d'une ip" / " pour une connexion" / etc. De telles restrictions doivent être vérifiées AVANT de vérifier le captcha lui-même (c'est-à-dire, même dans le cas d'un captcha correctement entré, s'il y a une restriction, il ne doit pas être considéré comme passé), sinon cela n'empêchera pas la recherche.

Protection DoS. Lors de la génération de captcha sur votre serveur, vous devez comprendre qu'il s'agit d'un vecteur pratique pour mener des attaques DoS (qui, contrairement au DDoS, peuvent être organisées par n'importe quel étudiant). Pour la protection, vous pouvez limiter le nombre de génération de captcha pour une ip, la mise en cache captcha, etc.

Protection contre la reconnaissance. Si vous choisissez un captcha, ou du coup vous allez l'écrire vous-même, il est conseillé de comprendre quel captcha est le plus protégé de la reconnaissance. Il existe des scripts de reconnaissance de captcha universels prêts à l'emploi qui fonctionnent sur le principe de l'OCR, et si votre site intéresse les spammeurs, il y a un risque qu'ils utilisent/écrivent un script spécifiquement pour votre captcha. Ce dernier, cependant, fait davantage référence à des sites du niveau de Yandex ou de vk, mais il est conseillé de prévoir une option avec protection contre l'OCR banale.

Protection anti-portail. Formellement parlant, un captcha comme test de Turing n'est pas obligé de vous protéger des anti-gates, puisque dans ce cas une personne le reconnaîtra. D'un point de vue pratique, cette question est très pertinente et il est nécessaire de se défendre d'une manière ou d'une autre.
Il n'y a pas et ne peut pas y avoir de "gold standard" (car dans ce cas, antigates implémentera son support), vous êtes donc libre de compléter le captcha avec des astuces pour le rendre impossible à reconnaître via l'antigate. Par exemple:
- captcha non standard (collecter un puzzle, faire pivoter une image, cliquer sur une zone sur une photo, etc.) ;
- le captcha cyrillique est la solution la plus simple, mais il présente un certain nombre d'inconvénients : il ne convient qu'aux projets avec un public russophone, il existe des anti-gates avec support cyrillique ;
- utilisation clavier virtuelà côté du captcha pour saisir des caractères ou des formes non standard (peut être gênant pour les utilisateurs mobiles) ;

Convivialité

Ne demandez pas de saisir un captcha si vous êtes déjà convaincu qu'il y a une personne devant vous. Ici, cependant, il faut faire attention que le formulaire ne puisse pas être utilisé par le script un nombre illimité de fois après une seule saisie de captcha par une personne.
Exemple : formulaire d'inscription. Si je m'inscris quelque part et que j'ai oublié de saisir le champ "code postal", mais que j'ai saisi correctement le captcha, il n'est pas nécessaire de m'en montrer un nouveau. Prenez 10 minutes pour enregistrer quelque part qu'une personne vivante essaie maintenant de remplir ce formulaire particulier.

Pour faciliter la reconnaissance humaine : n'utilisez pas de lettres et de chiffres dans captcha en même temps, n'utilisez pas à la fois des majuscules et minuscule, excluez les caractères similaires.

Refus d'utiliser le captcha

Le meilleur captcha n'est pas un captcha. Où vous pouvez refuser de l'utiliser - cela doit être fait. Vous devrez peut-être implémenter des limites et des contrôles supplémentaires pour cela, mais les utilisateurs vous remercieront.
Mais ici, il faut être très prudent. Par exemple : un formulaire d'inscription sans captcha, avec un champ email auquel vient une lettre d'activation. Sans moyens de protection supplémentaires, un tel formulaire peut être inondé d'adresses "à gauche", et votre site sera blacklisté par les services postaux. Dans ce cas, vous pouvez vous passer de captcha, mais uniquement si vous disposez d'une autre ligne de défense, comme une limite d'ip.

Pour certains, les informations contenues dans ce sujet sembleront évidentes, mais si je n'avais pas rencontré d'exemples d'incompréhension de ces principes simples de la vie, y compris de la part de collègues développeurs expérimentés, je ne perdrais pas de temps à écrire ce texte.

Vous avez aimé l'article ? A partager entre amis :