Maison développement back-end tutoriel php Comment implémenter le code de vérification et empêcher les attaques de robots dans un projet PHP ?

Comment implémenter le code de vérification et empêcher les attaques de robots dans un projet PHP ?

Nov 03, 2023 pm 05:40 PM
验证码 php项目 Anti-bot

Comment implémenter le code de vérification et empêcher les attaques de robots dans un projet PHP ?

Comment implémenter le code de vérification et prévenir les attaques de robots dans un projet PHP ?

Avec le développement et la popularité d'Internet, de plus en plus de sites Web et d'applications commencent à être menacés par des attaques de robots. Afin de protéger la sécurité des informations des utilisateurs et d'offrir une bonne expérience utilisateur, les développeurs doivent mettre en œuvre des codes de vérification et des mesures pour empêcher les attaques de robots dans leurs projets. Cet article expliquera comment implémenter des codes de vérification et empêcher les attaques de robots dans les projets PHP.

1. Mise en œuvre du code de vérification
Le code de vérification est une méthode courante pour prévenir les attaques de robots. Les utilisateurs doivent saisir un code de vérification lors de leur connexion ou de leur inscription pour confirmer leur identité.

  1. Générer des images de code de vérification
    PHP fournit une multitude de fonctions de traitement graphique qui peuvent être utilisées pour générer des images de code de vérification. Voici un exemple de code :
session_start();
$code = rand(1000,9999);
$_SESSION['code'] = $code;

$width = 100; // 验证码图片宽度
$height = 30; // 验证码图片高度
$image = imagecreatetruecolor($width, $height);

$bgColor = imagecolorallocate($image, 255, 255, 255);
$textColor = imagecolorallocate($image, 0, 0, 0);

imagefilledrectangle($image, 0, 0, $width, $height, $bgColor);

imagettftext($image, 20, 0, 10, $height/2, $textColor, 'path/to/font.ttf', $code);

header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
Copier après la connexion
  1. Valider la saisie de l'utilisateur
    Lorsque l'utilisateur soumet le formulaire, comparez le code de vérification saisi par l'utilisateur avec le code de vérification généré pour déterminer si la saisie de l'utilisateur est correcte. Voici un exemple de code :
session_start();
$code = $_SESSION['code'];

$userInput = $_POST['code'];

if ($userInput == $code) {
    // 验证码输入正确,继续处理用户提交的数据
} else {
    // 验证码输入错误,给用户一个提示
    echo "验证码输入错误";
}
Copier après la connexion

2. Mise en œuvre de la prévention des attaques de robots
Le code de vérification ne peut empêcher que de simples attaques de robots. Afin de mieux prévenir les attaques de robots, nous pouvons également prendre les mesures suivantes :

  1. Ajouter des champs cachés.
    Ajoutez un champ masqué au formulaire et vérifiez côté serveur si la valeur du champ est vide. Étant donné que les robots remplissent souvent automatiquement les champs du formulaire, ils remplissent également ce champ, révélant ainsi leur identité de robot.
<input type="hidden" name="isHuman" value="">
Copier après la connexion
if (!empty($_POST['isHuman'])) {
    // 非机器人提交,继续处理用户提交的数据
} else {
    // 机器人提交,停止处理并给用户一个提示
    echo "请不要使用机器人进行提交";
}
Copier après la connexion
  1. Vérifier la fréquence des demandes
    Déterminez si l'utilisateur est un robot en fonction de la fréquence des demandes de l'utilisateur. Par exemple, si une adresse IP envoie continuellement un grand nombre de requêtes sur une courte période de temps, elle peut être déterminée comme étant un robot. Vous pouvez enregistrer l'horodatage et l'adresse IP des demandes des utilisateurs, puis formuler des politiques correspondantes en fonction des besoins réels.
session_start();
$ip = $_SERVER['REMOTE_ADDR'];
$timestamp = time();

$requests = $_SESSION['requests'];
if (!$requests) {
    $requests = [];
}

// 添加新的请求记录
$requests[] = ['ip' => $ip, 'timestamp' => $timestamp];

// 清理过期的请求记录
foreach ($requests as $key => $request) {
    if ($timestamp - $request['timestamp'] > 60) {
        unset($requests[$key]);
    }
}

$_SESSION['requests'] = $requests;

if (count($requests) > 10) {
    // 用户请求频率过高,判定为机器人攻击,给用户一个提示
    echo "您的请求过于频繁,请稍后再试";
} else {
    // 用户请求正常,继续处理用户提交的数据
}
Copier après la connexion

Grâce à l'application combinée des mesures ci-dessus, l'effet de vérification du code et la prévention des attaques de robots peuvent être mieux obtenus dans les projets PHP. Les développeurs peuvent ajuster de manière flexible la forme et les règles de vérification du code de vérification, ainsi que les conditions de détermination des attaques de robots, en fonction de besoins spécifiques, pour améliorer la sécurité du système et l'expérience utilisateur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Que dois-je faire si Google Chrome n'affiche pas l'image du code de vérification ? Le navigateur Chrome n'affiche pas le code de vérification ? Que dois-je faire si Google Chrome n'affiche pas l'image du code de vérification ? Le navigateur Chrome n'affiche pas le code de vérification ? Mar 13, 2024 pm 08:55 PM

Que dois-je faire si Google Chrome n'affiche pas l'image du code de vérification ? Lors de la connexion à une page Web à l'aide de Google Chrome, un code de vérification est parfois requis. Certains utilisateurs constatent que Google Chrome ne peut pas afficher correctement le contenu de l'image lorsqu'il utilise des codes de vérification d'image. Qu'est-ce qui devrait être fait? L'éditeur ci-dessous vous expliquera comment gérer le code de vérification de Google Chrome qui ne s'affiche pas. J'espère que cela sera utile à tout le monde ! Introduction à la méthode : 1. Entrez dans le logiciel, cliquez sur le bouton « Plus » dans le coin supérieur droit et sélectionnez « Paramètres » dans la liste d'options ci-dessous pour entrer. 2. Après être entré dans la nouvelle interface, cliquez sur l'option « Paramètres de confidentialité et sécurité » sur la gauche. 3. Cliquez ensuite sur « Paramètres du site Web » à droite

Pourquoi ne puis-je pas recevoir le code de vérification sur mon téléphone ? Pourquoi ne puis-je pas recevoir le code de vérification sur mon téléphone ? Aug 17, 2023 pm 02:49 PM

L'incapacité de recevoir le code de vérification sur votre téléphone mobile est causée par des problèmes de réseau, des problèmes de paramètres du téléphone mobile, des problèmes d'opérateur de téléphonie mobile et des problèmes de paramètres personnels. Introduction détaillée : 1. Problèmes de réseau. L'environnement réseau dans lequel se trouve le téléphone mobile est instable ou le signal est faible, ce qui peut empêcher la livraison du code de vérification à temps. 2. Problèmes de configuration du téléphone mobile. ou la fonction vocale du téléphone mobile est accidentellement désactivée, ou le numéro d'envoi du code de vérification est ajouté à la liste noire, ce qui fait que le code de vérification n'est pas reçu normalement 3. Problèmes d'opérateur de téléphonie mobile, l'opérateur de téléphonie mobile peut avoir ; dysfonctionnements ou maintenance, entraînant la non-livraison du code de vérification à temps, etc.

Les numéros virtuels peuvent-ils recevoir des codes de vérification ? Les numéros virtuels peuvent-ils recevoir des codes de vérification ? Jan 02, 2024 am 10:22 AM

Le numéro virtuel peut recevoir le code de vérification. Tant que le numéro de téléphone mobile renseigné lors de l'inscription est conforme à la réglementation et que le numéro de téléphone mobile peut être connecté normalement, vous pouvez recevoir le code de vérification par SMS. Cependant, vous devez être prudent lorsque vous utilisez des numéros de téléphone mobile virtuels. Certains sites Web ne prennent pas en charge l'enregistrement de numéros de téléphone mobile virtuels, vous devez donc choisir un fournisseur de services de numéro de téléphone mobile virtuel classique.

Cas de traitement d'images PHP : Comment implémenter la fonction de code de vérification des images Cas de traitement d'images PHP : Comment implémenter la fonction de code de vérification des images Aug 17, 2023 pm 12:09 PM

Cas de traitement d'images PHP : Comment implémenter la fonction de code de vérification des images Avec le développement rapide d'Internet, les codes de vérification sont devenus l'un des moyens importants pour protéger la sécurité des sites Web. Le code de vérification est une méthode de vérification qui utilise la technologie de reconnaissance d'image pour déterminer si l'utilisateur est un utilisateur réel. Cet article expliquera comment utiliser PHP pour implémenter la fonction de code de vérification des images et sera accompagné d'exemples de code. Introduction Un code de vérification est une image contenant des caractères aléatoires. L'utilisateur doit saisir les caractères dans l'image pour réussir la vérification. Le processus principal de mise en œuvre du code de vérification consiste à générer des caractères aléatoires et à dessiner des caractères dans des images.

Guide de développement PHP : implémentation de la connexion par code de vérification Guide de développement PHP : implémentation de la connexion par code de vérification Jul 01, 2023 am 09:27 AM

Avec le développement d'Internet et la popularité des smartphones, la fonction de connexion par code de vérification est adoptée par de plus en plus de sites Web et d'applications. La connexion par code de vérification est une méthode de connexion qui vérifie l'identité de l'utilisateur en saisissant le code de vérification correct pour améliorer la sécurité et prévenir les attaques malveillantes. Dans le développement PHP, la mise en œuvre d'une simple fonction de connexion par code de vérification n'est pas compliquée et peut être réalisée via les étapes suivantes. Créer une table de base de données Tout d'abord, nous devons créer une table dans la base de données pour stocker les informations du code de vérification. La structure du tableau peut contenir les champs suivants : id : clé primaire à incrémentation automatique du téléphone

Les codes de vérification ne peuvent pas arrêter les robots ! L'IA de Google peut identifier avec précision le texte flou, tandis que GPT-4 fait semblant d'être aveugle et demande de l'aide Les codes de vérification ne peuvent pas arrêter les robots ! L'IA de Google peut identifier avec précision le texte flou, tandis que GPT-4 fait semblant d'être aveugle et demande de l'aide Apr 12, 2023 am 09:46 AM

"Le plus ennuyeux, ce sont toutes sortes de codes de vérification bizarres (voire pervertis) lorsque vous vous connectez à un site Web. Maintenant, il y a de bonnes et de mauvaises nouvelles. " La bonne nouvelle est que l’IA peut le faire pour vous. Si vous ne me croyez pas, voici trois cas réels de difficulté croissante de reconnaissance : Et voici les réponses données par un modèle appelé « Pix2Struct » : Sont-ils tous précis et mot pour mot ? Certains internautes ont déploré : Bien sûr, la précision est meilleure que la mienne. Alors, peut-il être transformé en plug-in de navigateur ? ? Oui, certaines personnes ont dit : même si ces cas sont relativement simples, si vous les ajustez simplement, je ne peux pas imaginer à quel point l'effet sera puissant. La mauvaise nouvelle est donc que le code de vérification ne pourra bientôt plus arrêter les robots ! (Danger danger danger...) Comment faire ? Pix2St

Utilisez la technologie OCR pour identifier automatiquement divers codes de vérification, et l'outil est open source Utilisez la technologie OCR pour identifier automatiquement divers codes de vérification, et l'outil est open source May 25, 2023 am 10:07 AM

Aujourd'hui, je partage avec vous une application OCR : ddddocr reconnaît automatiquement les codes de vérification. Les quatre premiers d sont le premier pinyin de « Daidai Young Brother ». [/Rire]. Adresse du projet : https://github.com/sml2h3/ddddocr. Lorsque vous l'utilisez, utilisez la commande pip pour l'installer directement, simplement pipinstalldddddocr. La technologie de base de l'OCR comprend deux aspects : l'un est le modèle de détection de cible pour détecter le texte dans l'image, et l'autre est le modèle de reconnaissance de texte pour convertir le texte de l'image en texte. Le premier type de codes de vérification est le plus simple. Ils n'ont pas d'images d'arrière-plan complexes, le modèle de détection de cible peut donc être omis et les images peuvent être directement envoyées au modèle de reconnaissance de texte. Le code d'identification est le suivant : import

Comment créer une image de code de vérification en utilisant PHP ? Comment créer une image de code de vérification en utilisant PHP ? Sep 13, 2023 am 11:40 AM

Comment créer une image de code de vérification en utilisant PHP ? CAPTCHA est une méthode couramment utilisée pour vérifier si l'utilisateur est un humain et non une machine. Sur les sites Web, nous voyons souvent des images de codes de vérification, qui obligent les utilisateurs à saisir des caractères ou des chiffres aléatoires affichés sur l'image pour effectuer des opérations telles que la connexion, l'enregistrement et les commentaires. Cet article explique comment utiliser PHP pour créer une image de code de vérification et fournit des exemples de code spécifiques. 1. Bibliothèque PHPGD Pour créer une image de code de vérification, nous devons utiliser la bibliothèque GD de PHP. La bibliothèque GD est une extension de traitement d'images.

See all articles