Maison > Opération et maintenance > Nginx > Comment intercepter un agent utilisateur spécifique dans Nginx

Comment intercepter un agent utilisateur spécifique dans Nginx

WBOY
Libérer: 2023-05-13 10:25:05
avant
1316 Les gens l'ont consulté

Liste noire des agents utilisateurs spécifiques dans nginx

Pour configurer la liste de blocage des agents utilisateurs, ouvrez le fichier de configuration nginx de votre site Web et recherchez la section des définitions de serveur. Ce fichier peut être placé à différents endroits, en fonction de votre configuration nginx ou de votre version Linux (par exemple, /etc/nginx/nginx.conf, /etc/nginx/sites-enabled/,/usr /local/ nginx/conf/nginx.conf,/etc/nginx/conf.d/).

Copiez le code Le code est le suivant :

serveur {
listening 80 default_server;
server_name xmodulo.com;
root /usr/share/nginx/html;
....
}

Ouvrez le fichier de configuration et recherchez la section serveur, ajoutez l'instruction if suivante quelque part dans la section.

Copiez le code Le code est le suivant :

serveur {
écoute 80 default_server;
server_name xmodulo.com; Correspondance sensible
          if ($http_user_agent ~ (antivirx|arian ) {
                return 403 ; 
                                                                                                                                                                       retourner 403 ;
       }
       ... .

}

Comme vous pouvez l'imaginer, ces instructions if utilisent des expressions régulières pour correspondre à toute chaîne d'utilisateur incorrecte et renvoient un code d'état http 403 à l'objet correspondant. $http_user_agent est une chaîne d'agent utilisateur incluse dans la requête http. L'opérateur '~' effectue une correspondance sensible à la casse avec la chaîne de l'agent utilisateur, tandis que l'opérateur '~*' effectue une correspondance indépendante de la casse, vous pouvez donc l'utiliser dans une instruction if. Insérez de nombreux mots-clés de l'agent utilisateur et. bloquez-les tous

Après avoir modifié le fichier de configuration, vous devez recharger nginx pour activer le blocage :

 $ sudo /path/to/nginx -s reload
Copier après la connexion
Copier après la connexion

Vous pouvez le faire en utilisant l'option "--user-agent" teste le blocage de l'agent utilisateur.

Gestion de la liste noire des agents utilisateurs dans nginx

Jusqu'à présent, j'ai montré comment bloquer certains agents utilisateurs pour les requêtes http dans nginx Que faire si vous souhaitez bloquer les robots d'exploration du Web

Depuis la liste noire des agents utilisateurs ? deviendra très volumineux, ce n'est pas une bonne idée de les placer dans la partie serveur de nginx. Au lieu de cela, vous pouvez en créer un fichier séparé dans lequel tous les agents utilisateurs bloqués sont répertoriés. Par exemple, créons /etc/nginx/useragent. .rules et définissez un graphique qui définit tous les agents utilisateurs bloqués au format suivant

 $ wget --user-agent "malicious bot" http://<nginx-ip-address>
Copier après la connexion

Copiez le code comme suit :

map $http_user_agent $badagent {Comment intercepter un agent utilisateur spécifique dans Nginx default 0;

~*malicious 1; porte dérobée 1;

~ *netcrawler                                                                                                                                                     Semblable à la configuration précédente, « ~* » correspondra aux mots-clés sans tenir compte de la casse, tandis que « ~ » correspondra aux mots-clés à l'aide d'une expression régulière sensible à la casse. La ligne "0 par défaut" signifie que tous les agents utilisateurs non répertoriés dans d'autres fichiers seront autorisés.

Ensuite, ouvrez le fichier de configuration nginx de votre site Web, recherchez la section contenant http, puis ajoutez la ligne suivante quelque part dans la section http.如 Copiez le code comme suit :

http {

.....

include /etc/nginx/useraurs.rules
}

Notez que l'instruction include doit apparaître devant le serveur (c'est pourquoi nous l'ajoutons pour l'ajouter pour l'ajouter pour l'ajouter pour l'ajouter à la partie http).

Maintenant, ouvrez la section de la configuration nginx qui définit votre serveur et ajoutez l'instruction if suivante :

Copiez le code Le code est le suivant :

serveur {

       ....

          if ($badagent) {

. ...
}

Enfin, rechargez nginx.

 $ sudo /path/to/nginx -s reload
Copier après la connexion
Copier après la connexion

Désormais, tout agent utilisateur contenant des mots-clés répertoriés dans /etc/nginx/useragent.rules sera automatiquement banni par nginx.

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!

Étiquettes associées:
source:yisu.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal