mirror of https://github.com/Lissy93/dashy.git
🔐 Adds local path checking
This commit is contained in:
parent
437ec2eac6
commit
8c15ab4c84
|
@ -7,6 +7,14 @@
|
||||||
const fsPromises = require('fs').promises;
|
const fsPromises = require('fs').promises;
|
||||||
|
|
||||||
module.exports = async (newConfig, render) => {
|
module.exports = async (newConfig, render) => {
|
||||||
|
/* Either returns nothing (if using default path), or strips navigational characters from path */
|
||||||
|
const makeSafeFileName = (configObj) => {
|
||||||
|
if (!configObj || !configObj.filename) return undefined;
|
||||||
|
return configObj.filename.replaceAll('/', '').replaceAll('..', '');
|
||||||
|
};
|
||||||
|
|
||||||
|
const usersFileName = makeSafeFileName(newConfig);
|
||||||
|
|
||||||
// Define constants for the config file
|
// Define constants for the config file
|
||||||
const settings = {
|
const settings = {
|
||||||
defaultLocation: './public/',
|
defaultLocation: './public/',
|
||||||
|
@ -16,11 +24,11 @@ module.exports = async (newConfig, render) => {
|
||||||
};
|
};
|
||||||
|
|
||||||
// Make the full file name and path to save the backup config file
|
// Make the full file name and path to save the backup config file
|
||||||
const backupFilePath = `${settings.defaultLocation}${newConfig.filename || settings.filename}-`
|
const backupFilePath = `${settings.defaultLocation}${usersFileName || settings.filename}-`
|
||||||
+ `${Math.round(new Date() / 1000)}${settings.backupDenominator}`;
|
+ `${Math.round(new Date() / 1000)}${settings.backupDenominator}`;
|
||||||
|
|
||||||
// The path where the main conf.yml should be read and saved to
|
// The path where the main conf.yml should be read and saved to
|
||||||
const defaultFilePath = settings.defaultLocation + (newConfig.filename || settings.defaultFile);
|
const defaultFilePath = settings.defaultLocation + (usersFileName || settings.defaultFile);
|
||||||
|
|
||||||
// Returns a string confirming successful job
|
// Returns a string confirming successful job
|
||||||
const getSuccessMessage = () => `Successfully backed up ${settings.defaultFile} to`
|
const getSuccessMessage = () => `Successfully backed up ${settings.defaultFile} to`
|
||||||
|
|
Loading…
Reference in New Issue