Avec le développement de la technologie Internet, prévenir les attaques web est devenu un enjeu important pour la sécurité des sites web. En tant qu'outil d'attaque automatisé, Bot est devenu l'une des principales formes d'attaques Web. En particulier, Nginx, qui fonctionne via un proxy inverse, a été largement utilisé en raison de son efficacité, de sa stabilité, de sa flexibilité et de sa personnalisation. Cet article fournira des mesures préventives efficaces contre les attaques de robots sous proxy inverse Nginx.
1. Activer le journal d'accès
Nginx fournit la fonction de journal d'accès, qui peut enregistrer le protocole HTTP, l'adresse IP source, l'heure de la demande, le code d'état de réponse et d'autres informations de chacun. demande. En activant le journal d'accès, les attaques de robots peuvent être plus facilement détectées.
Ajoutez le contenu suivant dans le fichier de configuration Nginx :
http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; …… }
2. Ajoutez une IP restreinte
Ajoutez une méthode pour restreindre l'IP dans la configuration Nginx. fichier, il peut empêcher efficacement les attaques provenant d’adresses IP dans des régions spécifiques. Par exemple, l'ajout du contenu suivant peut empêcher les attaques depuis la Chine continentale :
http { deny 61.135.0.0/16; deny 118.25.0.0/16; …… }
3 Utilisez le module GeoIP
Le module GeoIP de Nginx peut comparer l'adresse IP de la source d'accès avec son emplacement géographique. correspondre. Installez simplement le module GeoIP et la bibliothèque GeoIP et utilisez les variables GeoIP pour détecter les régions d'origine IP. Par exemple :
http { geoip_country /usr/share/GeoIP/GeoIP.dat; geoip_city /usr/share/GeoIP/GeoIPCity.dat; server { location / { if ($geoip_country_code = CN) { return 403; } if ($geoip_city_name ~* "moscow") { return 403; } } } }
4. Ajouter une vérification du référent HTTP
Le référent HTTP peut être utilisé pour vérifier la source de la demande. Ajoutez simplement le contenu suivant dans le fichier de configuration de Nginx :
http { server { if ($http_referer ~* (blacklist1|blacklist2|blacklist3)) { return 403; } } }
5 Utilisez Nginx pour empêcher les attaques CC
Nginx fournit certaines fonctionnalités pour empêcher les attaques CC. Définissez-le simplement dans le fichier de configuration Nginx :
http { limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; server { location / { limit_req zone=one burst=5; …… } } }
6 Activer le certificat SSL
En activant le certificat SSL, vous pouvez empêcher le vol de données et l'homme du milieu. attaques au niveau du protocole HTTP. Dans le même temps, le mécanisme HTTP Strict Transport Security (HSTS) peut être activé pour empêcher la conversion forcée des requêtes HTTP en requêtes HTTP, permettant ainsi à tous les accès d'être accessibles en HTTPS à l'avenir.
http { server { listen 443 ssl; ssl_certificate /path/to/cert; ssl_certificate_key /path/to/key; add_header Strict-Transport-Security "max-age=315360000; includeSubDomains; preload;"; } }
Summary
La sécurité du serveur proxy inverse Nginx affecte directement la sécurité de l'ensemble du système d'application Web. Pour les attaques de robots, en activant le journal d'accès, en ajoutant des adresses IP restreintes, en utilisant le module GeoIP, en ajoutant la vérification du référent HTTP, en utilisant Nginx pour empêcher les attaques CC et en activant les certificats SSL, etc., vous pouvez aider le serveur proxy inverse Nginx à éviter les fausses demandes et attaques malveillantes et protéger la sécurité du système d’application 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!