};
var ThriftWebServerOptions = {
- files: '.',
+ files: __dirname,
tls: {
key: fs.readFileSync('../../../test/keys/server.key'),
cert: fs.readFileSync('../../../test/keys/server.crt')
//Locate the file requested and send it
var uri = url.parse(request.url).pathname;
- var filename = path.join(baseDir, uri);
+ var filename = path.resolve(path.join(baseDir, uri));
+
+ //Ensure the basedir path is not able to be escaped
+ if (filename.indexOf(baseDir) != 0) {
+ response.writeHead(400, "Invalid request path", {});
+ response.end();
+ return;
+ }
+
fs.exists(filename, function(exists) {
if(!exists) {
response.writeHead(404);