From 3d6b0eb1fe2c9d1dcfafc9501930cd212ebd0970 Mon Sep 17 00:00:00 2001 From: jash Date: Fri, 12 Oct 2018 19:46:10 +0200 Subject: [PATCH] added ua comment validator --- install/generator-cyphernode/generators/app/index.js | 9 +++++++++ .../generators/app/prompters/100_bitcoin.js | 1 + 2 files changed, 10 insertions(+) diff --git a/install/generator-cyphernode/generators/app/index.js b/install/generator-cyphernode/generators/app/index.js index f52b580..300dd94 100644 --- a/install/generator-cyphernode/generators/app/index.js +++ b/install/generator-cyphernode/generators/app/index.js @@ -8,6 +8,8 @@ const path = require("path"); const featureChoices = require(path.join(__dirname, "features.json")); const coinstring = require('coinstring'); +const uaCommentRegexp = /^[a-zA-Z0-9 \.,:_\?@]+$/ + let prompters = []; const normalizedPath = path.join(__dirname, "prompters"); fs.readdirSync(normalizedPath).forEach(function(file) { @@ -128,6 +130,13 @@ module.exports = class extends Generator { return true; } + _UACommentValidator( comment ) { + if( !uaCommentRegexp.test( comment ) ) { + throw new Error('Unsafe characters in UA comment. Please use only a-z, A-Z, 0-9, SPACE and .,:_?@'); + } + return true; + } + _trimFilter( input ) { return (input+"").trim(); } diff --git a/install/generator-cyphernode/generators/app/prompters/100_bitcoin.js b/install/generator-cyphernode/generators/app/prompters/100_bitcoin.js index 97fe606..bdbe44e 100644 --- a/install/generator-cyphernode/generators/app/prompters/100_bitcoin.js +++ b/install/generator-cyphernode/generators/app/prompters/100_bitcoin.js @@ -73,6 +73,7 @@ module.exports = { name: 'bitcoin_uacomment', default: utils._getDefault( 'bitcoin_uacomment' ), message: prefix()+'Any UA comment?'+'\n', + validate: utils._UACommentValidator }]; }, env: function( props ) {