Maison > Opération et maintenance > Nginx > Méthode de défense contre le reniflage des requêtes HTTP dans le proxy inverse Nginx

Méthode de défense contre le reniflage des requêtes HTTP dans le proxy inverse Nginx

王林
Libérer: 2023-06-11 08:12:09
original
1666 Les gens l'ont consulté

Avec le développement d'Internet, les serveurs et les applications Web sont devenus de plus en plus complexes et les attaques de sécurité ont progressivement augmenté. Nginx est l'un des outils les plus utilisés dans les serveurs Web et la technologie d'équilibrage de charge. Le mécanisme de proxy inverse de Nginx peut en faire un serveur d'applications fiable, mais il constitue également une cible largement attaquée. Dans cet article, nous explorerons comment nous défendre contre les attaques par reniflage de requêtes HTTP dans le proxy inverse Nginx.

Qu'est-ce qu'une attaque par reniflage de requêtes HTTP ?

L'attaque par reniflage de requêtes HTTP est une méthode d'attaque réseau courante. L'attaquant intercepte les requêtes HTTP dans les paquets de données réseau et analyse et traite les données pour obtenir des informations sensibles sur le site cible. Autrement dit, l'attaquant intercepte la requête HTTP envoyée par le client au serveur et analyse les en-têtes et les paramètres. En analysant ces informations, l'attaquant peut obtenir l'adresse IP réelle du serveur, déduire le serveur d'applications réel et obtenir des données sensibles importantes pouvant inclure les informations de connexion de l'utilisateur, les données commerciales, l'identification de session, etc. Les attaques par reniflage de requêtes HTTP peuvent également être utilisées pour identifier les vulnérabilités des applications Web et attaquer ces vulnérabilités.

Méthode de défense contre les attaques par reniflage de requêtes HTTP dans le proxy inverse Nginx

1 Activer le protocole HTTPS

Le protocole HTTPS est un protocole de communication crypté qui peut empêcher efficacement les attaques par reniflage de requêtes HTTP. L'activation du protocole HTTPS nécessite l'installation d'un certificat SSL valide. Actuellement, les certificats SSL les plus populaires incluent Let's Encrypt gratuit et Symantec, DigiCert, etc. L'activation du protocole HTTPS dans le proxy inverse Nginx peut être réalisée avec la configuration suivante :

server {
    listen 443;
    server_name example.com;
    ssl on;
    ssl_certificate /path/to/cert.crt;
    ssl_certificate_key /path/to/cert.key;

    location / {
        proxy_pass http://backend;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
Copier après la connexion

La configuration ci-dessus peut activer une attaque en détournant le processus de prise de contact SSL et en forçant le client à passer au protocole HTTP non chiffré. Cette méthode d'attaque est appelée. une attaque de suppression SSL. , vous devez activer la liaison du certificat SSL dans la configuration du serveur Nginx :

server {
    listen 80;
    server_name example.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /path/to/cert.crt;
    ssl_certificate_key /path/to/cert.key;

    if ($ssl_protocol = "") {
        return 403;
    }

    location / {
        proxy_pass http://backend;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
Copier après la connexion

2. Définir les en-têtes de requête HTTP

La définition de certains en-têtes de requête HTTP dans le serveur Nginx peut empêcher efficacement les attaques par reniflage de requête HTTP. La définition de l'en-tête de requête HTTP nécessite de modifier le fichier de configuration du serveur Nginx. Vous pouvez généralement ajouter les paramètres suivants dans le bloc http du fichier de configuration Nginx :

add_header X-Frame-Options SAMEORIGIN;
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options nosniff;
Copier après la connexion

La configuration ci-dessus peut rendre la politique CSP du navigateur plus sécurisée et invitera le navigateur. ne pas analyser la réponse car le code HTML doit être téléchargé à la place, mais cela n'empêche pas un attaquant de renifler la demande.

3. Utiliser le pare-feu et le pare-feu d'applications Web

Le pare-feu et le pare-feu d'applications Web peuvent inspecter et filtrer les requêtes afin de détecter et d'empêcher les attaques par reniflage de requêtes HTTP. Les pare-feu peuvent activer des règles pour une plus grande sécurité, telles que :

  • Autoriser uniquement les clients à utiliser des adresses IP ou des services d'accès réseau spécifiques
  • Bloquer les requêtes avec différents en-têtes ou délais d'attente de requête HTTP

4. Utiliser la liaison IP/Port

Utiliser La liaison IP/Port est un moyen simple d’éviter les échecs d’équilibrage de charge dus aux attaques par reniflage. Dans la configuration d'équilibrage de charge du serveur Nginx, utilisez les adresses IP pour limiter l'accès client, et vous pouvez également restreindre l'accès client à des ports spécifiques sur le serveur Nginx. Par exemple :

upstream backend {
    ip_hash;
    server backend1.example.com:80;
    server backend2.example.com:80;
}

server {
    listen 192.0.2.1:80;
    server_name example.com;
    location / {
        proxy_pass http://backend;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
Copier après la connexion

La configuration ci-dessus peut faire en sorte que le client ne transmette que 192.0.2.1 : 80 Port pour accéder au serveur Nginx, empêchant ainsi efficacement les attaques par reniflage.

Résumé

L'attaque par reniflage de requête HTTP dans le proxy inverse Nginx est une méthode d'attaque courante, qui peut être réalisée en activant le protocole HTTPS, en définissant l'en-tête de requête HTTP, en utilisant le pare-feu et le pare-feu d'application Web et la liaison IP/Port, etc. Soyez sur la défensive . Bien que les méthodes ci-dessus puissent améliorer la sécurité des applications, dans les applications réelles, des méthodes de défense plus appropriées doivent être sélectionnées en fonction de la situation réelle de l'application pour garantir la sécurité et la stabilité de l'application.

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:php.cn
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