mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
config/security: Add O\w+ (e.g. GOROOT) to the default allowed list
Fixes #10429
This commit is contained in:
parent
21af5b359f
commit
c6b3887696
2 changed files with 6 additions and 2 deletions
|
@ -42,7 +42,7 @@ var DefaultConfig = Config{
|
||||||
),
|
),
|
||||||
// These have been tested to work with Hugo's external programs
|
// These have been tested to work with Hugo's external programs
|
||||||
// on Windows, Linux and MacOS.
|
// on Windows, Linux and MacOS.
|
||||||
OsEnv: NewWhitelist("(?i)^((HTTPS?|NO)_PROXY|PATH(EXT)?|APPDATA|TE?MP|TERM)$"),
|
OsEnv: NewWhitelist(`(?i)^((HTTPS?|NO)_PROXY|PATH(EXT)?|APPDATA|TE?MP|TERM|GO\w+)$`),
|
||||||
},
|
},
|
||||||
Funcs: Funcs{
|
Funcs: Funcs{
|
||||||
Getenv: NewWhitelist("^HUGO_", "^CI$"),
|
Getenv: NewWhitelist("^HUGO_", "^CI$"),
|
||||||
|
|
|
@ -140,7 +140,7 @@ func TestToTOML(t *testing.T) {
|
||||||
got := DefaultConfig.ToTOML()
|
got := DefaultConfig.ToTOML()
|
||||||
|
|
||||||
c.Assert(got, qt.Equals,
|
c.Assert(got, qt.Equals,
|
||||||
"[security]\n enableInlineShortcodes = false\n\n [security.exec]\n allow = ['^dart-sass-embedded$', '^go$', '^npx$', '^postcss$']\n osEnv = ['(?i)^((HTTPS?|NO)_PROXY|PATH(EXT)?|APPDATA|TE?MP|TERM)$']\n\n [security.funcs]\n getenv = ['^HUGO_', '^CI$']\n\n [security.http]\n methods = ['(?i)GET|POST']\n urls = ['.*']",
|
"[security]\n enableInlineShortcodes = false\n\n [security.exec]\n allow = ['^dart-sass-embedded$', '^go$', '^npx$', '^postcss$']\n osEnv = ['(?i)^((HTTPS?|NO)_PROXY|PATH(EXT)?|APPDATA|TE?MP|TERM|GO\\w+)$']\n\n [security.funcs]\n getenv = ['^HUGO_', '^CI$']\n\n [security.http]\n methods = ['(?i)GET|POST']\n urls = ['.*']",
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -163,4 +163,8 @@ func TestDecodeConfigDefault(t *testing.T) {
|
||||||
c.Assert(pc.HTTP.Methods.Accept("GET"), qt.IsTrue)
|
c.Assert(pc.HTTP.Methods.Accept("GET"), qt.IsTrue)
|
||||||
c.Assert(pc.HTTP.Methods.Accept("get"), qt.IsTrue)
|
c.Assert(pc.HTTP.Methods.Accept("get"), qt.IsTrue)
|
||||||
c.Assert(pc.HTTP.Methods.Accept("DELETE"), qt.IsFalse)
|
c.Assert(pc.HTTP.Methods.Accept("DELETE"), qt.IsFalse)
|
||||||
|
|
||||||
|
c.Assert(pc.Exec.OsEnv.Accept("PATH"), qt.IsTrue)
|
||||||
|
c.Assert(pc.Exec.OsEnv.Accept("GOROOT"), qt.IsTrue)
|
||||||
|
c.Assert(pc.Exec.OsEnv.Accept("MYSECRET"), qt.IsFalse)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue