Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Mengehadkan Saiz Borang POST dengan Selamat dalam Go untuk Mencegah Kerentanan Keselamatan?

Bagaimanakah Saya Boleh Mengehadkan Saiz Borang POST dengan Selamat dalam Go untuk Mencegah Kerentanan Keselamatan?

Barbara Streisand
Lepaskan: 2024-11-29 21:34:13
asal
786 orang telah melayarinya

How Can I Securely Limit POST Form Size in Go to Prevent Security Vulnerabilities?

Menghadkan Saiz Borang dalam Go for Security

Apabila menggunakan pakej http Go untuk mengendalikan permintaan borang POST, had lalai untuk saiz badan permintaan ialah 10MB. Walaupun ini mungkin mencukupi untuk banyak kes, mungkin terdapat situasi di mana pengurangan had ini dinasihatkan untuk mengurangkan risiko keselamatan.

Untuk mengehadkan lagi saiz borang, pendekatan yang dicadangkan ialah menggunakan fungsi http.MaxBytesReader. Fungsi ini mencipta pembaca baharu yang mengehadkan bilangan maksimum bait yang boleh dibaca daripada badan permintaan. Contohnya:

r.Body = http.MaxBytesReader(w, r.Body, MaxFileSize) 
err := r.ParseForm()
if err != nil {
     // Redirect to error page
     return
}
Salin selepas log masuk

Dengan membungkus badan permintaan dengan http.MaxBytesReader, penghuraian permintaan akan ditamatkan jika saiz fail melebihi had yang ditentukan MaxFileSize. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa menetapkan bendera ralat tidak menutup sambungan secara automatik. Pendekatan yang disyorkan ialah menetapkan had masa untuk menghurai permintaan menggunakan Server.ReadTimeout.

Jika anda mengendalikan berbilang pengendali dan ingin melaksanakan had ini secara global, anda boleh menggunakan fungsi middleware seperti:

type maxBytesHandler struct {
     h http.Handler
     n int64
 }

 func (h *maxBytesHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
     r.Body = http.MaxBytesReader(w, r.Body, h.n) 
     h.h.ServeHTTP(w, r)
 }
Salin selepas log masuk

Perisian tengah ini kemudiannya boleh dililitkan pada pengendali akar, memastikan semua permintaan tertakluk pada had saiz.

Dengan melaksanakan teknik ini, anda boleh mengehadkan saiz permintaan borang POST dengan berkesan, menghalang pelakon berniat jahat daripada mengeksploitasi penggunaan sumber yang berlebihan atau serangan penafian perkhidmatan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengehadkan Saiz Borang POST dengan Selamat dalam Go untuk Mencegah Kerentanan Keselamatan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan