Pour la commodité d'analyse, nous enregistrons le champ Si j'écris un module NGinx pour masquer les données, dois-je écrire un nouveau module de journal ou dois-je manipuler le corps de la demande avant le module de journal d'origine appelé? $ requérir_body code> dans le journal d'accès. Cependant, il existe des informations sensibles dans le corps de poste, telles que le mot de passe ou le numéro de carte de crédit, exposés dans les journaux. Comment pouvons-nous masquer ces informations?
Ou devrais-je utiliser Nginx-Lua pour atteindre cet objectif?
Ou existe-t-il d'autres méthodes? P> p>
3 Réponses :
Utilisez la commande 'echo_read_request_body''body '"pour obtenir les données de poste http, puis filtrer le mot de passe à l'aide de" carte "et regex puis définissez log_format et utilisez-le sur un niveau serveur / emplacement: < / p> voici plus d'informations: https://www.rscloud.net/blog/30-how-a-hide-sensible-post-Data-in-nginx-log P > p>
Ceci est ma version.
@Yury Sergeev Réponse n'est efficace que s'il n'y a qu'un seul mot de passe Ma version est même bien que manuel et sale .. mais il va toujours masquer ces mots de passe p> votre corps de demande comme deviendra code> dans la requête.bon. Mais si vous avez une page d'enregistrement où vous avez confirmation_password code> et d'autres mots de passe comme & mot de passe = PASS1234 & confirmation_password = PASS1234 & Retrait_password = PASS1234 CODE> Il ne fonctionnera pas. P> nom d'utilisateur = 3124124 & mot de passe = 3124124 & confirmation_password = 2412411134231 & real_name = doyen & téléphone = 13412345678 & email =xxx@yahoo.com code> p> Nom d'utilisateur=312412&real_name=fean&phone=13412345678&email=xxx@yahoo.com Code> P> P> P> P> P> P> P>
Une carte d'expression pouvant masquer le champ de mot de passe, quelle que soit sa position dans la liste d'arguments testée pour les modèles suivants p> Cependant, il faut comparer le coût de performance d'exécution de la carte de regex sur le corps de chaque requête. P> p>