diff --git a/src/my-addresses/my-addresses.js b/src/my-addresses/my-addresses.js index e3b9503..1fd7041 100644 --- a/src/my-addresses/my-addresses.js +++ b/src/my-addresses/my-addresses.js @@ -38,15 +38,17 @@ document.addEventListener('DOMContentLoaded', () => { $.extend({}, dataTableParams, { columns: [ { data: 'id' }, - { data: 'address', render: (data) => { return ``; }, width: '42%', class: 'text-center desktop' }, + { data: 'address', render: (data) => { return ``; }, width: '42%', class: 'text-center desktop' }, { data: 'balance', render: (data) => { return humanAmountFormat(data); }, class: 'text-center' }, { data: 'input_count', class: 'text-center desktop' }, { data: 'address', render: (data) => { let btns = ''; - btns += `Send`; - btns += ``; - btns += `Explorer`; - btns += `Transactions`; + const encodedAddress = encodeURIComponent(data); + const safeAddress = escapeHtml(data); + btns += `Send`; + btns += ``; + btns += `Explorer`; + btns += `Transactions`; return btns; }, class: 'text-right' }, ], diff --git a/src/transactions/transactions.js b/src/transactions/transactions.js index 39105f0..e9f4f34 100644 --- a/src/transactions/transactions.js +++ b/src/transactions/transactions.js @@ -9,7 +9,7 @@ document.addEventListener('DOMContentLoaded', () => { columns: [ { data: 'id', className: 'dtr-control', render: (row, display, column) => { let $html = '
'; - $html += `
${column.id}
`; + $html += `
${escapeHtml(column.id)}
`; if (column.confirmations === '-') $html += `
@@ -21,7 +21,7 @@ document.addEventListener('DOMContentLoaded', () => { return $html; } }, { data: 'timestamp', render: dateTimeFormat }, - { data: 'tx_id', render: (data) => { return ``; }, width: '30%', class: 'text-center desktop' }, + { data: 'tx_id', render: (data) => { return ``; }, width: '30%', class: 'text-center desktop' }, { data: 'amount', render: (data) => { let className = 'danger'; let text = 'Sended'; @@ -39,7 +39,7 @@ document.addEventListener('DOMContentLoaded', () => { { data: 'coinbase', className: 'none', render: (data) => { return data ? 'Yes' : 'No'; } }, { data: 'tx_id', render: (data) => { let btns = ''; - btns += `Explorer`; + btns += `Explorer`; return btns; }, class: 'text-right desktop' }, ], diff --git a/src/utils.js b/src/utils.js index 8755034..ed2f5e4 100644 --- a/src/utils.js +++ b/src/utils.js @@ -46,6 +46,15 @@ const formHandler = ($formName, callback) => { }); }; +const escapeHtml = (value) => { + return String(value) + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); +}; + const dataTableParams = { processing: true, renderer: 'bootstrap',