diff --git a/libs/jsonTree/jsonTree.js b/libs/jsonTree/jsonTree.js index 51bbf01..679c3b7 100644 --- a/libs/jsonTree/jsonTree.js +++ b/libs/jsonTree/jsonTree.js @@ -220,21 +220,25 @@ var jsonTree = (function() { var self = this, el = document.createElement('li'), labelEl, + wrapper = document.createElement('div'), template = function(label, val) { - var str = '\ + wrapper.innerHTML = '\ \ - "' + - label + - '" : \ + : \ \ \ - ' + - val + - '' + - (!isLast ? ',' : '') + - ''; - - return str; + \ + ' + (!isLast ? ',' : '') + '\ + '; + + var labelNode = wrapper.querySelector('.jsontree_label'); + var valueNode = wrapper.querySelector('.jsontree_value'); + + // Escape HTML characters in the label and value to prevent XSS attacks + labelNode.textContent = '"' + label + '"'; + valueNode.textContent = val; + + return wrapper.innerHTML; }; self.label = label;