Files
ftp-server/test/start.js
Matt Forster 457b859450 fix(fs): check resolved path against root (#224)
* fix(fs): check resolved path against root

This should prevent paths from being resolved above the root.

Should affect all commands that utilize the FS functions.

Fixes #167

* test: use __dirname for relative certs

* fix: improve path resolution

* chore: remove unused package

* fix: normalize resolve path if absolute

Otherwise join will normalize

Co-authored-by: Tyler Stewart <tyler@autovance.com>
2020-12-16 10:19:28 -07:00

25 lines
795 B
JavaScript

const bunyan = require('bunyan');
const fs = require('fs');
const FtpServer = require('../src');
const server = new FtpServer({
log: bunyan.createLogger({name: 'test', level: 'trace'}),
url: 'ftp://127.0.0.1:8880',
pasv_url: '192.168.1.1',
pasv_min: 8881,
greeting: ['Welcome', 'to', 'the', 'jungle!'],
tls: {
key: fs.readFileSync(`${__dirname}/cert/server.key`),
cert: fs.readFileSync(`${__dirname}/cert/server.crt`),
ca: fs.readFileSync(`${__dirname}/cert/server.csr`)
},
file_format: 'ep',
anonymous: 'sillyrabbit'
});
server.on('login', ({username, password}, resolve, reject) => {
if (username === 'test' && password === 'test' || username === 'anonymous') {
resolve({root: __dirname});
} else reject('Bad username or password');
});
server.listen();