additional validation of requests

This commit is contained in:
Brian Gough
2015-05-11 12:10:13 +01:00
parent 58ecfa69e6
commit 9d3fdcf8b4
2 changed files with 83 additions and 1 deletions

View File

@@ -20,6 +20,7 @@ describe "StaticServerForbidSymlinks", ->
"logger-sharelatex":
log:->
warn:->
error:->
"fs":@fs
@dummyStatic = (rootDir, options) ->
@@ -69,6 +70,70 @@ describe "StaticServerForbidSymlinks", ->
done()
@StaticServerForbidSymlinks @req, @res
describe "with a relative file", ->
beforeEach ->
@req.url = "/12345/../67890/output.pdf"
it "should send a 404", (done)->
@res.sendStatus = (resCode)->
resCode.should.equal 404
done()
@StaticServerForbidSymlinks @req, @res
describe "with a unnormalized file containing .", ->
beforeEach ->
@req.url = "/12345/foo/./output.pdf"
it "should send a 404", (done)->
@res.sendStatus = (resCode)->
resCode.should.equal 404
done()
@StaticServerForbidSymlinks @req, @res
describe "with a file containing an empty path", ->
beforeEach ->
@req.url = "/12345/foo//output.pdf"
it "should send a 404", (done)->
@res.sendStatus = (resCode)->
resCode.should.equal 404
done()
@StaticServerForbidSymlinks @req, @res
describe "with a non-project file", ->
beforeEach ->
@req.url = "/.foo/output.pdf"
it "should send a 404", (done)->
@res.sendStatus = (resCode)->
resCode.should.equal 404
done()
@StaticServerForbidSymlinks @req, @res
describe "with a file outside the compiledir", ->
beforeEach ->
@req.url = "/../bar/output.pdf"
it "should send a 404", (done)->
@res.sendStatus = (resCode)->
resCode.should.equal 404
done()
@StaticServerForbidSymlinks @req, @res
describe "with a file with no leading /", ->
beforeEach ->
@req.url = "./../bar/output.pdf"
it "should send a 404", (done)->
@res.sendStatus = (resCode)->
resCode.should.equal 404
done()
@StaticServerForbidSymlinks @req, @res
describe "with an error from fs.realpath", ->
beforeEach ->