Add: Security Headers
This commit is contained in:
16
internal/middlewares/headers.go
Normal file
16
internal/middlewares/headers.go
Normal file
@@ -0,0 +1,16 @@
|
||||
package middlewares
|
||||
|
||||
import "github.com/gin-gonic/gin"
|
||||
|
||||
func SecurityHeadersMiddleware() gin.HandlerFunc {
|
||||
return func(c *gin.Context) {
|
||||
c.Header("X-Frame-Options", "DENY")
|
||||
c.Header("X-Content-Type-Options", "nosniff")
|
||||
c.Header("Referrer-Policy", "strict-origin-when-cross-origin")
|
||||
c.Header("Strict-Transport-Security", "max-age=31536000; includeSubDomains")
|
||||
c.Header("X-XSS-Protection", "1; mode=block")
|
||||
c.Header("Feature-Policy", "geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera 'none'; magnetometer 'none'; gyroscope 'none'; speaker 'none'; fullscreen 'self'; payment 'none'")
|
||||
c.Header("Permissions-Policy", "geolocation=(), midi=(), sync-xhr=(), microphone=(), camera=(), magnetometer=(), gyroscope=(), fullscreen=(self), payment=()")
|
||||
c.Next()
|
||||
}
|
||||
}
|
||||
@@ -55,6 +55,7 @@ func Run() {
|
||||
router.Use(gin.Logger())
|
||||
router.Use(middlewares.CORSMiddleware())
|
||||
router.Use(middlewares.CSPMiddleware())
|
||||
router.Use(middlewares.SecurityHeadersMiddleware())
|
||||
|
||||
limiter := middlewares.NewIPRateLimiter(config.Security.Ratelimits.Limit, config.Security.Ratelimits.Burst)
|
||||
router.Use(middlewares.RateLimitMiddleware(limiter))
|
||||
|
||||
Reference in New Issue
Block a user