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

Comment intercepter un agent utilisateur spécifique dans Nginx

WBOY
WBOYavant
2023-05-13 10:25:051258parcourir

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

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>

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

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer