Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Mengehadkan Saiz Borang dengan Berkesan di Golang untuk Meningkatkan Keselamatan?

Bagaimanakah Saya Boleh Mengehadkan Saiz Borang dengan Berkesan di Golang untuk Meningkatkan Keselamatan?

DDD
Lepaskan: 2024-11-30 04:44:11
asal
286 orang telah melayarinya

How Can I Effectively Limit Form Size in Golang to Enhance Security?

Menghadkan Saiz Borang Selanjutnya di Golang: Panduan Komprehensif

Dalam konteks penggunaan Golang, had saiz permintaan borang telah dinaikkan sebagai perkara yang membimbangkan. Secara lalai, permintaan borang POST dihadkan kepada saiz maksimum 10MB.

Melaksanakan Had Yang Lebih Ketat

Untuk menetapkan had yang lebih ketat, seseorang boleh mengubah suai kaedah ServeHTTP. Pendekatan biasa melibatkan penggunaan fungsi MaxBytesReader:

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

Pengendalian Ralat dan Pengurusan Sambungan

Apabila menghadapi ralat dalam ParseForm(), sambungan akan ditutup secara automatik kerana MaxBytesReader menetapkan bendera pada respons apabila hadnya dicapai.

Langkah Keselamatan Tambahan

Untuk melindungi daripada pelanggan yang berniat jahat, adalah dinasihatkan untuk menambah had saiz badan permintaan dengan tambahan tetapan:

  • Server.ReadTimeout
  • Server.WriteTimeout
  • Server.MaxHeaderBytes

Menetapkan Had Global

Untuk penguatkuasaan yang konsisten merentas semua pengendali, fungsi pembungkus boleh dibuat untuk menggunakan had:

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

Pembungkus kemudiannya boleh digunakan dalam konfigurasi pelayan:

s := http.Server{
    Addr: ":8080",
    Handler: &maxBytesReader{h:mux, n:4096},
}
log.Fatal(s.ListenAndServe())
Salin selepas log masuk

Kesimpulan

Mengikut garis panduan ini, pembangun boleh mengehadkan saiz borang dengan berkesan di Golang untuk mengurangkan risiko keselamatan dan mencegah sumber keletihan. MaxBytesReader kekal sebagai pendekatan yang disyorkan untuk mencapai objektif ini.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengehadkan Saiz Borang dengan Berkesan di Golang untuk Meningkatkan 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan