Maison > Article > développement back-end > 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é.
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);
session_start(); $code = $_SESSION['code']; $userInput = $_POST['code']; if ($userInput == $code) { // 验证码输入正确,继续处理用户提交的数据 } else { // 验证码输入错误,给用户一个提示 echo "验证码输入错误"; }
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 :
<input type="hidden" name="isHuman" value="">
if (!empty($_POST['isHuman'])) { // 非机器人提交,继续处理用户提交的数据 } else { // 机器人提交,停止处理并给用户一个提示 echo "请不要使用机器人进行提交"; }
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 { // 用户请求正常,继续处理用户提交的数据 }
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!