mirror of
https://github.com/tenrok/vue-json-viewer.git
synced 2026-06-17 19:21:24 +03:00
fix: xss bug
This commit is contained in:
@@ -91,7 +91,7 @@ export default {
|
||||
'jv-array': true,
|
||||
},
|
||||
domProps: {
|
||||
innerHTML: '['
|
||||
innerText: '['
|
||||
}
|
||||
}))
|
||||
this.ordered.forEach((value, key) => {
|
||||
@@ -124,7 +124,7 @@ export default {
|
||||
title: `click to reveal ${this.value.length} hidden items`
|
||||
},
|
||||
domProps: {
|
||||
innerHTML: '...'
|
||||
innerText: '...'
|
||||
}
|
||||
}))
|
||||
}
|
||||
@@ -135,7 +135,7 @@ export default {
|
||||
'jv-array': true,
|
||||
},
|
||||
domProps: {
|
||||
innerHTML: ']'
|
||||
innerText: ']'
|
||||
}
|
||||
}))
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ export default {
|
||||
'jv-boolean': true,
|
||||
},
|
||||
domProps: {
|
||||
innerHTML: props.jsonValue.toString()
|
||||
innerText: props.jsonValue.toString()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ export default {
|
||||
'jv-number': true,
|
||||
},
|
||||
domProps: {
|
||||
innerHTML: props.jsonValue.toString()
|
||||
innerText: props.jsonValue.toString()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@ export default {
|
||||
'jv-object': true,
|
||||
},
|
||||
domProps: {
|
||||
innerHTML: '{'
|
||||
innerText: '{'
|
||||
}
|
||||
}))
|
||||
|
||||
@@ -125,7 +125,7 @@ export default {
|
||||
title: `click to reveal object content (keys: ${Object.keys(this.ordered).join(', ')})`
|
||||
},
|
||||
domProps: {
|
||||
innerHTML: '...'
|
||||
innerText: '...'
|
||||
}
|
||||
}))
|
||||
}
|
||||
@@ -136,7 +136,7 @@ export default {
|
||||
'jv-object': true,
|
||||
},
|
||||
domProps: {
|
||||
innerHTML: '}'
|
||||
innerText: '}'
|
||||
}
|
||||
}))
|
||||
|
||||
|
||||
@@ -12,9 +12,18 @@ export default {
|
||||
},
|
||||
render (h, { props }) {
|
||||
let value = props.jsonValue;
|
||||
const islink = REG_LINK.test(value)
|
||||
let domProps
|
||||
|
||||
if (REG_LINK.test(value)) {
|
||||
if (islink) {
|
||||
value = `<a href="${value}" target="_blank" style="color: #0366d6;">${value}</a>`;
|
||||
domProps = {
|
||||
innerHTML: `"${value.toString()}"`
|
||||
}
|
||||
} else {
|
||||
domProps = {
|
||||
innerText: `"${value.toString()}"`
|
||||
}
|
||||
}
|
||||
|
||||
return h('span', {
|
||||
@@ -23,7 +32,7 @@ export default {
|
||||
'jv-string': true,
|
||||
},
|
||||
domProps: {
|
||||
innerHTML: `"${value.toString()}"`
|
||||
...domProps
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ export default {
|
||||
'jv-undefined': true,
|
||||
},
|
||||
domProps: {
|
||||
innerHTML: props.jsonValue === null ? 'null' : 'undefined'
|
||||
innerText: props.jsonValue === null ? 'null' : 'undefined'
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user