Maison >Opération et maintenance >Nginx >Comment Nginx se protège contre les attaques par injection XML

Comment Nginx se protège contre les attaques par injection XML

王林
王林original
2023-06-11 08:20:161788parcourir

L'attaque par injection XML est une méthode d'attaque réseau courante, dans laquelle les attaquants transmettent du code XML injecté de manière malveillante à des applications pour obtenir un accès non autorisé ou effectuer des opérations malveillantes. Nginx est un serveur Web et un serveur proxy inverse populaire qui peut protéger contre les attaques par injection XML de diverses manières.

  1. Filtrer et valider les entrées

Toutes les données entrées sur le serveur, y compris les entrées XML, doivent être filtrées et validées. Nginx fournit des modules intégrés qui peuvent vérifier les requêtes avant de les transmettre par proxy au service backend. L'un des modules est ngx_http_lua_module, qui fournit une prise en charge intégrée du langage Lua et peut écrire des scripts de vérification de demande personnalisés à exécuter à différentes étapes de la demande. Par exemple, pendant la phase d'accès, le code Lua peut être utilisé pour inspecter l'entrée afin d'identifier le code XML malveillant.

  1. Activer le filtre XML External Entity (XEE)

Les vulnérabilités XML External Entity (XEE) sont répandues et permettent aux attaquants d'envoyer une charge utile XML spécialement conçue , exploitant les vulnérabilités XEE pour obtenir des informations sensibles du serveur ou mener des attaques. Nginx fournit un module intégré appelé ngx_http_xml_module qui peut être utilisé pour activer les filtres XEE afin d'empêcher ce type d'attaque. Ce module peut vérifier les entités externes dans le document XML avant de transmettre la demande au service backend et rejeter la demande si des problèmes sont détectés. Vous pouvez activer le filtrage XEE en utilisant : Envoyez-le au serveur pour exploiter les vulnérabilités de l'analyseur côté serveur. Pour prévenir ce type d'attaque, vous pouvez utiliser la directive suivante pour préciser les types de documents XML à accepter :

xml_parser on;
xml_entities on;
    Par défaut, Nginx n'accepte que les documents XML de types application/xml et text/xml, tous Tous les autres types seront rejetés.
Limiter la taille des requêtes XML

Si un attaquant envoie une grande quantité de données XML, le serveur peut rencontrer des problèmes de performances ou planter. Pour éviter que cela ne se produise, vous devez définir la taille maximale des requêtes HTTP afin de limiter la taille du XML. La taille maximale des requêtes XML peut être définie à l'aide de la directive suivante :

xml_known_document_types application/xml application/xhtml+xml image/svg+xml text/xml text/html;
    Cela limitera la taille maximale des requêtes XML à 1 Mo.
Examiner les fichiers journaux

L'examen des demandes dans les journaux peut vous aider à détecter d'éventuelles attaques à temps et à prendre les mesures appropriées. Nginx fournit un module intégré appelé ngx_http_log_module qui peut enregistrer les informations demandées dans un fichier journal. Vous pouvez activer le module de journalisation à l'aide de la commande suivante :

client_max_body_size 1m;
    Conclusion
  1. Nginx est un serveur Web populaire et un serveur proxy inverse qui protège contre l'injection XML de diverses manières. . Il est recommandé de prendre les précautions ci-dessus lors de l'application de Nginx afin de réduire le risque de failles de sécurité.

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:
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