Maison > Article > développement back-end > solution de désensibilisation Golang Log
Avec le développement d'Internet, de plus en plus de programmeurs choisissent d'utiliser le langage Go pour développer des applications. Le langage Go présente les avantages de l’efficacité, de la simplicité et de la facilité de maintenance, il est donc très populaire. Dans le processus de développement, la journalisation est essentielle et la sécurité des journaux est de plus en plus valorisée.
La journalisation peut nous aider à comprendre l'état d'exécution de l'application, ce qui est très utile pour le débogage et le dépannage. Cependant, les journaux peuvent contenir des informations sensibles, et si les journaux ne sont pas désensibilisés, des informations sensibles peuvent être divulguées. Par conséquent, dans les applications pratiques, nous devons désensibiliser les informations sensibles contenues dans les journaux.
Le langage Go nous fournit de puissantes bibliothèques de journalisation, telles que Logrus, Zap, etc. Ces bibliothèques sont faciles à utiliser, mais lors de la désensibilisation des journaux, nous devons effectuer quelques opérations supplémentaires. Cet article explique comment utiliser la bibliothèque de journalisation dans le langage Go pour désensibiliser les journaux.
1. La nécessité d'une désensibilisation des journaux
Dans l'application, nous enregistrerons diverses informations, telles que : le nom de connexion de l'utilisateur, le mot de passe, le numéro de téléphone portable, l'adresse e-mail, l'adresse IP, etc. Ces informations sont très importantes, mais si elles sont enregistrées directement dans le journal, elles peuvent entraîner des fuites d'informations.
Par conséquent, lors de l'enregistrement des journaux, nous devons désensibiliser ces informations sensibles. Après désensibilisation, même en cas de fuite du journal, les informations sensibles de l'utilisateur ne seront pas directement exposées, garantissant ainsi la confidentialité et la sécurité de l'utilisateur.
2. Méthodes de désensibilisation des journaux
Nous pouvons désensibiliser les informations sensibles contenues dans les journaux de différentes manières. Voici plusieurs méthodes courantes :
C'est la méthode la plus courante, remplacez directement les informations sensibles par "*", par exemple :
Nom de connexion : Mot de passe : *
Numéro de portable : *
Adresse e-mail : *@.com
Cette méthode est simple, mais elle donne parfois lieu à des informations manquant de clarté, notamment lorsqu'un champ contient plusieurs informations sensibles et qu'il n'est pas facile de savoir lesquelles sont lesquelles.
Pour certains scénarios, nous pouvons désensibiliser partiellement les informations sensibles, par exemple :
Numéro de téléphone portable : 138**1234
Numéro de carte d'identité : *1234
Numéro de carte bancaire : 1234
Cette méthode peut conserver certaines informations, mais il existe quand même certains risques de sécurité.
Pour certains scénarios avec des exigences de sécurité élevées, nous pouvons choisir de crypter les informations sensibles, telles que :
Numéro de téléphone portable : f4e2be33ca0637acb68a562e012b0e9d
Numéro de carte d'identité : f5a0e74752ae1be43956 b4d 5e8b915f8
Numéro de carte bancaire : 72bb75e6b76f891deab8349735dc6058
Cette méthode est plus sûre, mais elle augmentera également la complexité du système et le rendra plus lourd à gérer.
3. Bibliothèques de journalisation en langage Go
Le langage Go possède une multitude de bibliothèques de journalisation tierces, parmi lesquelles les plus populaires sont Logrus et Zap. Ici, nous prenons Logrus comme exemple pour présenter Logrus est une puissante bibliothèque de journaux qui peut répondre à nos différents besoins en matière de journaux.
Avant de commencer la pratique, nous devons d'abord installer Logrus. Utilisez la commande suivante pour terminer l'installation :
allez chercher github.com/sirupsen/logrus
Présentez-le. dans le code Logrus :
import "github.com/sirupsen/logrus"
Logrus fournit une variété de niveaux de journalisation, notamment Debug, Info, Warning, Error, Fatal, Panic, etc. Nous pouvons utiliser le code suivant pour générer des informations ordinaires :
logrus.Info("Hello, world!")
Dans les applications pratiques, nous pouvons avoir besoin d'enregistrer des journaux avec des informations contextuelles . Voici un exemple de sortie d'un journal avec des informations contextuelles :
logrus.WithFields(logrus.Fields{
"animal": "walrus",
}).Info("Un morse apparaît")
Dans Logrus, le paramètre par défaut le niveau de journalisation est Info. Si vous souhaitez ajuster le niveau de journalisation, vous pouvez utiliser le code suivant :
logrus.SetLevel(logrus.DebugLevel)
En plus de la sortie vers la console, nous pouvons se connecte également dans un fichier, voici un exemple de sortie dans un fichier :
file, err := os.OpenFile("logs/app.log", os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0666)
if err != nil {
logrus.Error("Failed to open log file: ", err) return
}
defer file.Close()
logrus.SetOutput(file)
Pour certaines informations sensibles, nous devons les désensibiliser pour protéger la confidentialité des utilisateurs. Voici un exemple de désensibilisation d'un numéro de téléphone portable :
mobile := "13812345678"
if len(mobile) > 7 {
mobile = mobile[0:3] + "****" + mobile[7:]
}
logrus.WithFields(logrus.Fields{
"mobile": mobile,
}). Info("Connexion utilisateur")
Avec le code ci-dessus, nous pouvons conserver les trois premiers et les quatre derniers chiffres du numéro de téléphone portable, et remplacer toutes les informations du milieu par "*".
4. Résumé
Grâce à l'introduction de cet article, nous comprenons la nécessité d'une désensibilisation journalière et des méthodes de désensibilisation courantes. Nous avons également appris à utiliser la bibliothèque de journalisation du langage Go pour désensibiliser les journaux, ce qui nous aidera à mieux protéger la confidentialité des utilisateurs.
Dans les applications pratiques, nous devons choisir une méthode de désensibilisation appropriée en fonction de nos propres besoins commerciaux et caractéristiques d'exploitation forestière, et l'utiliser de manière flexible. L’objectif ultime est de protéger autant que possible la confidentialité des utilisateurs et d’améliorer la sécurité du système.
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!