Skip to content

Commit b5af779

Browse files
committed
refactor: strengthen HTTPS security and improve code organization
- Enforce a minimum TLS version of 1.2 for HTTPS servers in RunTLS - Refactor regular expression variable declarations into a grouped var block Signed-off-by: Bo-Yi Wu <[email protected]>
1 parent 75ccf94 commit b5af779

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

gin.go

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
package gin
66

77
import (
8+
"crypto/tls"
89
"fmt"
910
"html/template"
1011
"net"
@@ -41,8 +42,10 @@ var defaultTrustedCIDRs = []*net.IPNet{
4142
},
4243
}
4344

44-
var regSafePrefix = regexp.MustCompile("[^a-zA-Z0-9/-]+")
45-
var regRemoveRepeatedChar = regexp.MustCompile("/{2,}")
45+
var (
46+
regSafePrefix = regexp.MustCompile("[^a-zA-Z0-9/-]+")
47+
regRemoveRepeatedChar = regexp.MustCompile("/{2,}")
48+
)
4649

4750
// HandlerFunc defines the handler used by gin middleware as return value.
4851
type HandlerFunc func(*Context)
@@ -515,7 +518,15 @@ func (engine *Engine) RunTLS(addr, certFile, keyFile string) (err error) {
515518
"Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.")
516519
}
517520

518-
err = http.ListenAndServeTLS(addr, certFile, keyFile, engine.Handler())
521+
server := &http.Server{
522+
Addr: addr,
523+
Handler: engine.Handler(),
524+
TLSConfig: &tls.Config{
525+
MinVersion: tls.VersionTLS12, // TLS 1.2 or higher
526+
},
527+
}
528+
529+
err = server.ListenAndServeTLS(certFile, keyFile)
519530
return
520531
}
521532

0 commit comments

Comments
 (0)