* 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>
25 lines
795 B
JavaScript
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();
|