


Comment PHP implémente la technologie anti-crawler et protège le contenu du site Web
Avec le développement d'Internet, le contenu du site Web est devenu de plus en plus abondant, attirant de plus en plus d'utilisateurs à visiter. Mais le problème qui en découle est qu’il est attaqué par des robots d’exploration malveillants, provoquant l’exploration et le vol du contenu du site Web. Par conséquent, comment utiliser la technologie anti-crawler pour protéger le contenu d’un site Web est devenu un problème que chaque webmaster doit résoudre. PHP est un langage de script open source populaire, facile à apprendre et puissant. Alors, comment utiliser PHP pour implémenter la technologie anti-crawler ? Ce qui suit vous l’expliquera en détail.
1. Définir les en-têtes de requête HTTP
Généralement, lorsqu'un navigateur normal accède à une page Web, l'en-tête de requête envoyé contient les informations de paramètres correspondantes. Les robots d'exploration malveillants n'envoient généralement pas ces paramètres. Nous pouvons donc identifier les robots d'exploration malveillants en définissant des en-têtes de requête HTTP. PHP fournit une fonction très pratique curl_setopt(), grâce à laquelle les en-têtes de requête peuvent être définis. L'implémentation spécifique est la suivante :
$curl = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://www.example.com"); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64...)"); curl_setopt($ch, CURLOPT_REFERER, "http://www.example.com"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $data = curl_exec($ch); curl_close($ch);
ajoute l'agent utilisateur, le référent et d'autres informations à l'en-tête de la demande, qui peuvent identifier le type de navigateur, l'adresse source et d'autres informations. Si ces informations ne sont pas ajoutées, elles seront probablement identifiées comme un robot malveillant et bloquées.
2. Vérification du code de vérification
Le code de vérification est une technologie anti-crawler efficace qui empêche les machines d'explorer automatiquement le site Web en ajoutant des codes de vérification. En PHP, nous pouvons utiliser la bibliothèque GD et la technologie Session pour implémenter le code de vérification. Le code spécifique est le suivant :
<?php session_start(); $width=90; $height=40; $str = "abcdefghijklmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ0123456789"; $code = ''; for ($i = 0; $i < 4; $i++) { $code .= substr($str, mt_rand(0, strlen($str) - 1), 1); } $_SESSION['code'] = $code; $img = imagecreatetruecolor($width, $height); $bg_color = imagecolorallocate($img, 255, 255, 255); imagefill($img, 0, 0, $bg_color); $font_file="arial.ttf"; for ($i = 0; $i < 4; $i++) { $font_size=mt_rand(14,18); $font_color=imagecolorallocate($img,mt_rand(0,100),mt_rand(0,100),mt_rand(0,100)); $angle=mt_rand(-30,30); $x=floor($width/6)*$i+6; $y=mt_rand(20, $height-10); imagettftext($img,$font_size,$angle,$x,$y,$font_color,$font_file,substr($code,$i,1)); } header("Content-type: image/png"); imagepng($img); imagedestroy($img); ?>
Ce code génère un code de vérification aléatoire grâce à la fonction de la bibliothèque GD et enregistre le code de vérification dans la Session. . Chaque fois qu'un utilisateur visite la page, vous pouvez ajouter un code de vérification à la page et comparer le code de vérification saisi par l'utilisateur avec le code de vérification enregistré dans la session. S'ils sont identiques, la vérification réussit, sinon la vérification échoue.
3. Limiter la fréquence d'accès
Certains robots exploreront automatiquement le site Web en boucle, ce qui consommera rapidement les ressources du site Web et provoquera son crash. En réponse à cette situation, nous pouvons freiner les attaques des robots en limitant la fréquence de chaque adresse IP accédant au site Web. En PHP, nous pouvons utiliser des bases de données de cache telles que Redis pour limiter la fréquence d'accès. Le code spécifique est le suivant :
<?php $redis = new Redis(); $redis->connect('127.0.0.1', 6379); $ip = $_SERVER["REMOTE_ADDR"]; $key = "visit:".$ip; $count = $redis->get($key); if(!$count) { $redis->setex($key, 1, 3);//3秒内允许访问一次 } elseif($count < 10) { $redis->incr($key); } else { die("您的访问过于频繁,请稍后再试"); } ?>
Ce code utilise la fonction incr() de Redis pour accumuler le nombre de visites sur chaque adresse IP, et utilise la fonction die() pour interrompre la requête lorsque le nombre de visites atteint. limite supérieure, l'utilisateur sera invité à réessayer plus tard.
En résumé, PHP, en tant que puissant langage de script open source, peut bien prendre en charge la mise en œuvre de la technologie anti-crawler. En définissant les en-têtes de requête HTTP, la vérification du code de vérification et en limitant la fréquence d'accès, vous pouvez efficacement empêcher les robots malveillants d'attaquer le site Web et protéger la sécurité du contenu du site Web. Par conséquent, les webmasters peuvent envisager d’ajouter ces technologies anti-crawler à leurs sites Web pour améliorer la sécurité et la stabilité du site Web.
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds

Cet article expliquera en détail comment PHP formate les lignes en CSV et écrit les pointeurs de fichiers. Je pense que c'est assez pratique, je le partage donc avec vous comme référence. J'espère que vous pourrez gagner quelque chose après avoir lu cet article. Formater les lignes au format CSV et écrire dans le pointeur de fichier Étape 1 : Ouvrir le pointeur de fichier $file=fopen("path/to/file.csv","w"); Étape 2 : Convertir les lignes en chaîne CSV à l'aide de la fonction fputcsv( ) convertit les lignes en chaînes CSV. La fonction accepte les paramètres suivants : $file : pointeur de fichier $fields : champs CSV sous forme de tableau $delimiter : délimiteur de champ (facultatif) $enclosure : guillemets de champ (

Cet article expliquera en détail la modification de l'umask actuel en PHP. L'éditeur pense que c'est assez pratique, je le partage donc avec vous comme référence. J'espère que vous pourrez gagner quelque chose après avoir lu cet article. Présentation de PHP modifiant l'umask actuel umask est une fonction php utilisée pour définir les autorisations de fichier par défaut pour les fichiers et répertoires nouvellement créés. Il accepte un argument, qui est un nombre octal représentant l'autorisation de bloquer. Par exemple, pour empêcher l'autorisation d'écriture sur les fichiers nouvellement créés, vous utiliserez 002. Méthodes pour modifier l'umask Il existe deux manières de modifier l'umask actuel en PHP : En utilisant la fonction umask() : La fonction umask() modifie directement l'umask actuel. Sa syntaxe est : intumas

Cet article expliquera en détail comment créer un fichier avec un nom de fichier unique en PHP. L'éditeur pense que c'est assez pratique, je le partage donc avec vous comme référence. J'espère que vous pourrez gagner quelque chose après avoir lu cet article. Création de fichiers avec des noms de fichiers uniques en PHP Introduction La création de fichiers avec des noms de fichiers uniques en PHP est essentielle pour organiser et gérer votre système de fichiers. Les noms de fichiers uniques garantissent que les fichiers existants ne sont pas écrasés et facilitent la recherche et la récupération de fichiers spécifiques. Ce guide couvrira plusieurs façons de générer des noms de fichiers uniques en PHP. Méthode 1 : utiliser la fonction uniqid() La fonction uniqid() génère une chaîne unique basée sur l'heure et les microsecondes actuelles. Cette chaîne peut être utilisée comme base pour le nom du fichier.

Cet article expliquera en détail le calcul par PHP du hachage MD5 des fichiers. L'éditeur pense que c'est assez pratique, je le partage donc avec vous comme référence. J'espère que vous pourrez gagner quelque chose après avoir lu cet article. PHP calcule le hachage MD5 d'un fichier. MD5 (MessageDigest5) est un algorithme de chiffrement unidirectionnel qui convertit les messages de longueur arbitraire en une valeur de hachage de 128 bits de longueur fixe. Il est largement utilisé pour garantir l’intégrité des fichiers, vérifier l’authenticité des données et créer des signatures numériques. Calculer le hachage MD5 d'un fichier en PHP PHP propose plusieurs méthodes pour calculer le hachage MD5 d'un fichier : Utilisez la fonction md5_file() La fonction md5_file() calcule directement la valeur de hachage MD5 du fichier et renvoie une valeur de 32 caractères.

Cet article expliquera en détail comment PHP tronque les fichiers à une longueur donnée. L'éditeur pense que c'est assez pratique, je le partage donc avec vous comme référence. J'espère que vous pourrez gagner quelque chose après avoir lu cet article. Introduction à la troncature de fichiers PHP La fonction file_put_contents() en PHP peut être utilisée pour tronquer des fichiers à une longueur spécifiée. La troncature consiste à supprimer une partie de la fin d'un fichier, raccourcissant ainsi la longueur du fichier. Syntaxe file_put_contents($filename,$data,SEEK_SET,$offset);$filename : le chemin du fichier à tronquer. $data : Chaîne vide à écrire dans le fichier. SEEK_SET : désigné comme début du fichier

Cet article expliquera en détail le codage numérique du message d'erreur renvoyé par PHP lors de l'opération Mysql précédente. L'éditeur pense que c'est assez pratique, je le partage donc avec vous comme référence. J'espère que vous pourrez gagner quelque chose après avoir lu cet article. . Utilisation de PHP pour renvoyer les informations d'erreur MySQL Introduction au codage numérique Lors du traitement des requêtes MySQL, vous pouvez rencontrer des erreurs. Afin de gérer efficacement ces erreurs, il est crucial de comprendre le codage numérique des messages d’erreur. Cet article vous guidera dans l'utilisation de php pour obtenir l'encodage numérique des messages d'erreur Mysql. Méthode d'obtention du codage numérique des informations d'erreur 1. mysqli_errno() La fonction mysqli_errno() renvoie le numéro d'erreur le plus récent de la connexion MySQL actuelle. La syntaxe est la suivante : $erro

Cet article expliquera en détail comment PHP renvoie un tableau après avoir inversé la valeur de la clé. L'éditeur pense que c'est assez pratique, je le partage donc avec vous comme référence. J'espère que vous pourrez gagner quelque chose après avoir lu cet article. PHP Key Value Flip Array Key Value Flip est une opération sur un tableau qui échange les clés et les valeurs du tableau pour générer un nouveau tableau avec la clé d'origine comme valeur et la valeur d'origine comme clé. Méthode d'implémentation En PHP, vous pouvez effectuer un retournement clé-valeur d'un tableau via les méthodes suivantes : Fonction array_flip() : La fonction array_flip() est spécialement utilisée pour les opérations de retournement clé-valeur. Il reçoit un tableau en argument et renvoie un nouveau tableau avec les clés et les valeurs échangées. $original_array=[

Cet article expliquera en détail l'établissement de connexions symboliques en PHP. L'éditeur pense que c'est très pratique, je le partage donc avec vous comme référence. J'espère que vous pourrez gagner quelque chose après avoir lu cet article. Introduction à l'établissement de liens symboliques en PHP Un lien symbolique est un type de fichier spécial qui pointe vers un autre fichier ou répertoire. Lorsqu'un lien symbolique est accédé, le système redirige automatiquement vers le fichier ou le répertoire cible comme s'il accédait directement au fichier ou au répertoire d'origine. En PHP, vous pouvez utiliser la fonction symlink() pour créer des liens symboliques. Syntaxe symlink(string$target,string$link) où : $target : Le chemin d'accès au fichier ou répertoire cible à lier. $link : Le chemin du lien symbolique. ginseng
