fix: Add url validation to origin validation in desktop

This commit is contained in:
Susmitha Girumala committed 2021-05-14 15:00:24 -04:00
1 parent 82a0c7c17c
commit 1a0650ff7c
2 files changed
+6 -7

No files matched your search

+4 -2
View File
@@ -4,6 +4,7 @@ const handle = require('./ipc-handler.js');
const boundaryCli = require('../cli/index.js');
const sessionManager = require('../services/session-manager.js');
const runtimeSettings = require('../services/runtime-settings.js');
const sanitizer = require('../utils/sanitizer.js');
/**
* Returns the current runtime origin, which is used by the main thread to
@@ -16,8 +17,9 @@ handle('getOrigin', () => runtimeSettings.origin);
* a main window reload.
*/
handle('setOrigin', async (requestOrigin) => {
await runtimeSettings.validateOrigin(requestOrigin);
runtimeSettings.origin = requestOrigin;
const origin = sanitizer.urlValidate(requestOrigin);
await runtimeSettings.validateOrigin(origin);
runtimeSettings.origin = origin;
});
/**
@@ -21,13 +21,10 @@ module.exports = {
urlValidate: (str) => {
try {
const url = new URL(str);
return url.href;
return `${url.protocol}://${url.host}`;
} catch (e) {
// Parse error
throw new Error(`
Could not invoke command:
input contained unsafe url.
`);
throw new Error(`URL ${str} could not be validated.`);
}
},
};