diff --git a/config/config.go b/config/config.go index 31c285d2..59ad671b 100644 --- a/config/config.go +++ b/config/config.go @@ -57,6 +57,11 @@ func IsDebug() bool { return os.Getenv("XUI_DEBUG") == "true" } +// IsSkipHSTS returns true if skipping HSTS mode is enabled via the XUI_SKIP_HSTS environment variable. +func IsSkipHSTS() bool { + return os.Getenv("XUI_SKIP_HSTS") == "true" +} + // GetBinFolderPath returns the path to the binary folder, defaulting to "bin" if not set via XUI_BIN_FOLDER. func GetBinFolderPath() string { binFolderPath := os.Getenv("XUI_BIN_FOLDER") diff --git a/web/web.go b/web/web.go index 35516e4d..e903a016 100644 --- a/web/web.go +++ b/web/web.go @@ -154,7 +154,8 @@ func (s *Server) initRouter() (*gin.Engine, error) { engine := gin.Default() directHTTPS := s.isDirectHTTPSConfigured() - engine.Use(middleware.SecurityHeadersMiddleware(directHTTPS)) + sendHSTS := directHTTPS && !config.IsSkipHSTS() + engine.Use(middleware.SecurityHeadersMiddleware(sendHSTS)) webDomain, err := s.settingService.GetWebDomain() if err != nil {