Salut Je suis l'auteur de plusieurs robots populaires pour l'administration de groupes de télégrammes: @daysandbox , @watchdog_robot et autres. Chaque jour, dans le groupe de soutien et dans les messages privés, je vois la même question: comment puis-je me protéger contre les spambots ajoutés au groupe. Habituellement, ils précisent également qu'il s'agit de robots de spam arabes. Les gens essaient de trouver un bot anti-spam qui supprimera les liens, supprimera les messages avec des caractères arabes, supprimera les utilisateurs avec des caractères arabes dans leurs noms et des trucs comme ça. Mais ce sont toutes des conséquences, et dans de nombreux cas, la raison est la même et il est facile de la corriger. La raison est simple, mais pas évidente.
Quelle est l'unicité du problème des robots anti-spam ajoutés au groupe? Les robots de télégramme ne voient pas les messages des autres robots de télégramme. Même si vous avez déjà installé des robots dans le groupe qui suppriment les liens, les caractères arabes et d'autres choses, même s'ils interdisent aux nouveaux membres d'écrire des messages jusqu'à ce que les nouveaux membres cliquent sur un bouton ou passent une sorte de test, cela n'aide pas spam
Le spam apparaît dans le scénario suivant:
- un membre du groupe ajoute un robot de spam au groupe
- bot anti-spam voit le fait d'ajouter un bot
- bot anti-spam, appelle la méthode API de télégramme, qui limite le bot de spam à écrire des messages dans le groupe. Par exemple, il le fait pour tous les nouveaux utilisateurs ou seulement pour ceux dont le nom d'utilisateur contient le mot "bot" à la fin. Peu importe.
- Il s'écoule un certain temps entre le moment où un robot de spam pénètre dans un groupe et les télégrammes du serveur traitent une demande pour restreindre ce robot à écrire des droits de chat. À ce stade, le robot de spam peut envoyer un message au chat.
- Le bot anti-spam ne voit pas ce message, car les bots ne voient pas les messages des autres bots. C'est ainsi que fonctionnent les télégrammes.
Le scénario considéré montre qu'il n'est pas toujours possible de faire face aux conséquences des robots ajoutés. Il est plus efficace de gérer la raison - la possibilité d'ajouter des robots à un groupe par membres du groupe.
Il existe deux types de groupes de télégrammes: public et privé. Le type de groupe détermine ce que les administrateurs, les utilisateurs ordinaires et les robots peuvent faire à l'intérieur du groupe et comment. Une condition préalable pour un groupe public est l'existence d'un lien du formulaire " https://t.me/XXX ", par lequel vous pouvez entrer dans le groupe. Pour un groupe privé, un lien de connexion n'est pas requis.
Considérez le processus de création d'un groupe à partir de zéro. Créez un groupe avec les paramètres par défaut. Nous aurons un groupe privé sans lien d'invitation. Essayons d'ajouter n'importe quel bot en tant que simple membre du groupe. Ajouté! Comment résoudre le problème? La seule façon d'interdire l'ajout de bots à un groupe privé est d'interdire manuellement l'ajout de nouveaux membres, en utilisant la case à cocher "Gestion de groupe -> Autorisations -> Ajouter des membres". Cela limitera uniquement les utilisateurs ordinaires, les administrateurs de groupe pourront toujours ajouter de nouveaux membres (et bots) à la main.
Avec le cas le plus simple trié. Créez maintenant un lien d'invitation pour entrer dans le groupe: "Gestion de groupe -> Informations sur le groupe -> Lien d'invitation -> Créer un lien d'invitation". Nous obtenons un lien du formulaire " https://t.me/joinchat/ ...". Un lien d'invitation est créé pour chaque administrateur, initialement seul l'administrateur qui l'a créé le sait. L'administrateur peut maintenant placer ce lien où bon lui semble, et tout utilisateur peut rejoindre le chat en utilisant ce lien. À tout moment, l'administrateur peut générer un nouveau lien d'invitation, tandis que l'ancien lien cessera de fonctionner.
Remarque importante: les robots collecteurs de mails ne peuvent pas entrer dans le groupe par lien d'invitation. Un bot de spam (et tout bot en général) ne peut entrer dans le chat que si quelqu'un y ajoute manuellement le bot. La raison la plus courante pour laquelle les robots indésirables apparaissent dans les discussions privées est que les administrateurs créent des liens d'invitation mais ne désactivent pas (via la gestion de groupe -> Autorisations) la possibilité d'ajouter manuellement de nouveaux utilisateurs.
Voyons maintenant ce qui se passe si nous transférons un groupe de privé à public en utilisant "Gestion de groupe -> Informations sur le groupe -> Groupe public". Nous devrons également proposer une adresse publique du formulaire " https://t.me/XXX ", sans quoi nous ne pouvons pas rendre le groupe public. Que ce soit " https://t.me/habr_test ". Quelle est la différence entre un groupe public et un groupe privé avec un lien d'invitation? Un groupe public peut être trouvé via une recherche de télégramme interne, et vous pouvez également voir n'importe quel message de groupe via le Web à " https://t.me/habr_test/X ", où X est le numéro de série du message dans le groupe.
Ainsi, notre groupe est devenu public, il a changé les propriétés de visibilité, et pas seulement. La chose la plus intéressante est que vous ne pouvez plus y inviter de robots. S'il est autorisé d'inviter de nouveaux utilisateurs dans "Gestion de groupe -> Autorisations", les utilisateurs peuvent inviter de nouveaux utilisateurs, mais uniquement des personnes ordinaires, pas des bots. Lorsque vous essayez d'ajouter un bot, l'erreur "Échec de l'ajout de l'utilisateur. Réessayez plus tard." Ce dont vous avez besoin!
Conclusion L'immunité contre l'infection d'un groupe par des bots donne l'une des deux actions suivantes:
- interdire aux participants réguliers d'ajouter des bots (Gestion de groupe -> Autorisations)
- transférer le groupe en mode public, c'est-à-dire attribuer au groupe une adresse du formulaire " https://t.me/habr_test "
PS Le titre de l'article est un petit clickbait. Bien sûr, beaucoup de spams de télégrammes sont générés non pas par des bots API bot, mais par des bots utilisant des comptes d'utilisateurs ordinaires, mais le problème et sa solution, décrits dans l'article, ont leur place. Et ils ont un endroit où être tous les jours, et j'ai hésité à répondre aux mêmes questions sur les mêmes questions, j'ai donc écrit cet article.
UPD: créé un bot qui supprime automatiquement les messages contenant des caractères arabes et supprime également les nouveaux utilisateurs dont les noms contiennent des caractères arabes. Installez simplement le robot @noarab_bot dans le chat et donnez-lui le droit de supprimer des messages et d'interdire les utilisateurs. Documentation du bot: https://tgdev.io/bot/noarab_bot
UPD2: Si pour une raison ou une autre, il est impossible de rendre le groupe public ou d'interdire l'ajout de membres dans un groupe privé, vous pouvez utiliser le bot @watchdog_robot avec le filtre "bot" - watchdog supprimera les bots immédiatement après que quelqu'un les aura ajoutés au chat.