Abandon du privilège avec Golang en v1.7
Problème :
Concevoir un site Web personnalisé Le serveur Go nécessite les privilèges root initiaux pour se lier au port 80. Cependant, il est souhaitable d'abandonner les privilèges root dès que possible. possible.
Contexte :
Le syscall.SetUid() de Go n'est pas disponible en raison du problème #1435, ce qui rend la suppression directe des privilèges peu pratique. Les méthodes alternatives comme IPtables introduisent des failles de sécurité.
Solution :
Le langage Go offre une solution à ce problème sans recourir à des outils ou des solutions de contournement externes. En implémentant un code personnalisé, nous pouvons nous lier au port requis et ensuite supprimer les privilèges root.
Implémentation :
Avantages :
Cette approche permet une gestion flexible des privilèges. Par exemple, pendant le développement, l'application peut s'exécuter sur un utilisateur non root et un port élevé sans configurations supplémentaires.
Exemple de code :
package main import ( "crypto/tls" "log" "net/http" "os/user" "strconv" "syscall" ) func main() { //... (continued) }
En suivant ces étapes, vous pouvez supprimer efficacement les privilèges dans votre application Go, garantissant ainsi un environnement d'exécution sécurisé et spécifique à l'utilisateur.
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!