Block symlink dir traversal for /static

This is in line with how it behaved before, but it was lifted a little for the project mount for Hugo Modules,
but that could create hard-to-detect loops.
This commit is contained in:
Bjørn Erik Pedersen
2019-07-25 00:12:40 +02:00
parent 87a07282a2
commit e5f2299741
24 changed files with 320 additions and 130 deletions

View File

@@ -124,7 +124,7 @@ theme = ["atheme"]
p, err := paths.New(fs, v)
assert.NoError(err)
bfs, err := NewBase(p)
bfs, err := NewBase(p, nil)
assert.NoError(err)
assert.NotNil(bfs)
@@ -206,7 +206,7 @@ func TestNewBaseFsEmpty(t *testing.T) {
p, err := paths.New(fs, v)
assert.NoError(err)
bfs, err := NewBase(p)
bfs, err := NewBase(p, nil)
assert.NoError(err)
assert.NotNil(bfs)
assert.NotNil(bfs.Archetypes.Fs)
@@ -263,7 +263,7 @@ func TestRealDirs(t *testing.T) {
p, err := paths.New(fs, v)
assert.NoError(err)
bfs, err := NewBase(p)
bfs, err := NewBase(p, nil)
assert.NoError(err)
assert.NotNil(bfs)
@@ -300,7 +300,7 @@ func TestStaticFs(t *testing.T) {
p, err := paths.New(fs, v)
assert.NoError(err)
bfs, err := NewBase(p)
bfs, err := NewBase(p, nil)
assert.NoError(err)
sfs := bfs.StaticFs("en")
@@ -344,7 +344,7 @@ func TestStaticFsMultiHost(t *testing.T) {
p, err := paths.New(fs, v)
assert.NoError(err)
bfs, err := NewBase(p)
bfs, err := NewBase(p, nil)
assert.NoError(err)
enFs := bfs.StaticFs("en")
checkFileContent(enFs, "f1.txt", assert, "Hugo Rocks!")