fix(api): fix potential Slowloris Attack

This commit is contained in:
Sergey Krashevich
2024-04-16 17:20:55 +03:00
parent 5fa31fe4d6
commit e1ebed4859
+6 -1
View File
@@ -11,6 +11,7 @@ import (
"strings" "strings"
"sync" "sync"
"syscall" "syscall"
"time"
"github.com/AlexxIT/go2rtc/internal/app" "github.com/AlexxIT/go2rtc/internal/app"
"github.com/AlexxIT/go2rtc/pkg/shell" "github.com/AlexxIT/go2rtc/pkg/shell"
@@ -96,7 +97,10 @@ func listen(network, address string) {
Port = ln.Addr().(*net.TCPAddr).Port Port = ln.Addr().(*net.TCPAddr).Port
} }
server := http.Server{Handler: Handler} server := http.Server{
Handler: Handler,
ReadHeaderTimeout: 5 * time.Second, // Example: Set to 5 seconds
}
if err = server.Serve(ln); err != nil { if err = server.Serve(ln); err != nil {
log.Fatal().Err(err).Msg("[api] serve") log.Fatal().Err(err).Msg("[api] serve")
} }
@@ -128,6 +132,7 @@ func tlsListen(network, address, certFile, keyFile string) {
server := &http.Server{ server := &http.Server{
Handler: Handler, Handler: Handler,
TLSConfig: &tls.Config{Certificates: []tls.Certificate{cert}}, TLSConfig: &tls.Config{Certificates: []tls.Certificate{cert}},
ReadHeaderTimeout: 5 * time.Second,
} }
if err = server.ServeTLS(ln, "", ""); err != nil { if err = server.ServeTLS(ln, "", ""); err != nil {
log.Fatal().Err(err).Msg("[api] tls serve") log.Fatal().Err(err).Msg("[api] tls serve")