Keistimewaan Menggugurkan dengan Golang dalam v1.7
Masalah:
Merancang web tersuai pelayan dalam Go memerlukan keistimewaan akar awal untuk mengikat ke port 80. Walau bagaimanapun, adalah wajar untuk melepaskan keistimewaan root secepat mungkin.
Latar Belakang:
syscall.SetUid() Go tidak tersedia kerana isu #1435, menjadikan pengguguran hak istimewa langsung tidak praktikal. Kaedah alternatif seperti IPtables memperkenalkan kelemahan keselamatan.
Penyelesaian:
Bahasa Go menawarkan penyelesaian kepada masalah ini tanpa bergantung pada alat luaran atau penyelesaian. Dengan melaksanakan kod tersuai, kami boleh mengikat pada port yang diperlukan dan seterusnya menggugurkan keistimewaan root.
Pelaksanaan:
Faedah:
Pendekatan ini membolehkan pengurusan keistimewaan yang fleksibel. Contohnya, semasa pembangunan, aplikasi boleh dijalankan pada pengguna bukan root dan port tinggi tanpa konfigurasi tambahan.
Contoh Kod:
package main import ( "crypto/tls" "log" "net/http" "os/user" "strconv" "syscall" ) func main() { //... (continued) }
Dengan mengikuti ini langkah, anda boleh menggugurkan keistimewaan dalam aplikasi Go anda dengan berkesan, memastikan persekitaran pelaksanaan yang selamat dan khusus pengguna.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggugurkan Keistimewaan Root Dengan Selamat Selepas Mengikat ke Port 80 dalam Pelayan Web Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!