我们正在通过用户输入构建JSON数据。除非用户输入quotes
作为第一个字母,否则它工作正常。
我的输出看起来像在stringify之后。
{"text":""'><img src=x onerror=alert('1')>"}
如果使用的JSON数据没有首先输入引号。
{"text":"><img src=x onerror=alert('1')>"}
我正在尝试更换&#34;&#34;&#39;用&#34;但这对我不起作用。 fiddle
实际结果
{"text":""'><img src=x onerror=alert('1')>"}
期望的结果
{"text":"><img src=x onerror=alert('1')>"}
答案 0 :(得分:0)
请尝试以下方法:
var obj = {"text": ""'><img src=x onerror=alert('1')>"}
var x = JSON.stringify(obj)
document.getElementById('test').innerHTML = x.toString().replace(/["]/g, "");
答案 1 :(得分:0)
你应该转换&amp; quot;到&#34;在更换之前&#34;&#34;用&#34;
请参考以下代码以使其正常工作。
var obj = {"text": ""'><img src=x onerror=alert('1')>"}
var x = JSON.stringify(obj).replace('"'','\"\'')
document.getElementById('test').innerHTML = x.toString().replace(/""'/,'\"')
另外,我已在here
更新了您的小提琴