Skip to content

Commit 823c47a

Browse files
Merge pull request #34 from TUM-Dev/security-fixes
Security fixes
2 parents fe9cff7 + 2f7b89a commit 823c47a

File tree

9 files changed

+315
-73
lines changed

9 files changed

+315
-73
lines changed

internal/app.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
_ "embed"
55
"fmt"
66
"github.com/TUM-Dev/meldeplattform/pkg/i18n"
7+
"github.com/TUM-Dev/meldeplattform/pkg/middleware"
78
"github.com/TUM-Dev/meldeplattform/pkg/model"
89
"github.com/gin-gonic/gin"
910
"gorm.io/gorm"
@@ -32,12 +33,15 @@ func NewApp() *App {
3233
}
3334
a.i18n = i
3435
a.engine.Use(gin.Logger(), gin.Recovery())
36+
a.engine.Use(middleware.SecurityHeaders())
3537
_ = a.engine.SetTrustedProxies(nil)
3638

3739
err = a.initCfg()
3840
if err != nil {
3941
panic(fmt.Errorf("init config: %v", err))
4042
}
43+
// Set secure cookie flag based on production mode
44+
middleware.SetSecureCookies(a.config.Mode == "prod")
4145
if a.config.Mode == "prod" {
4246
// strip clientip from requests:
4347
a.engine.Use(func(c *gin.Context) {
@@ -58,7 +62,8 @@ func (a *App) Run() error {
5862

5963
func (a *App) setLang(c *gin.Context) {
6064
reqLang := c.Request.URL.Query().Get("lang")
61-
c.SetCookie("lang", reqLang, 60*60*24*365, "/", "", false, true)
65+
secure := a.config.Mode == "prod"
66+
c.SetCookie("lang", reqLang, 60*60*24*365, "/", "", secure, true)
6267
c.Redirect(http.StatusFound, "/")
6368
}
6469

internal/cfg.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ func (a *App) initCfg() error {
1111
if err != nil {
1212
return fmt.Errorf("open config.yaml: %v", err)
1313
}
14+
defer f.Close()
1415
d := yaml.NewDecoder(f)
1516
if err = d.Decode(&a.config); err != nil {
1617
return fmt.Errorf("decode config.yaml: %v", err)

0 commit comments

Comments
 (0)