Javascript:无法加载Unicode符号
我的js和html代码如下:Javascript:无法加载Unicode符号,javascript,html,unicode,Javascript,Html,Unicode,我的js和html代码如下: <script> function addComment(){ var a=document.getElementById("a"); var input=document.getElementById("myinput"); a.innerHTML="<p \u0025></p>"; } </script> </head> <body> <input id="myinput" ty
<script>
function addComment(){
var a=document.getElementById("a");
var input=document.getElementById("myinput");
a.innerHTML="<p \u0025></p>";
}
</script>
</head>
<body>
<input id="myinput" type="text"/>
<button onclick="addComment()">input</button>
<p id="a">a</p>
</body>
</html>
函数addComment(){
var a=document.getElementById(“a”);
var input=document.getElementById(“myinput”);
a、 innerHTML=“”;
}
输入
a
结果页面如下所示,unicode已转换为“%”
但是,如果我使用了输入值(在html代码中):
函数addComment(){
var a=document.getElementById(“a”);
var input=document.getElementById(“myinput”);
a、 innerHTML=input.value;
}
输入
a
我试着输入字符串“”
无法将unicode转换为“%”:
您有两个不同的字符串,相当于:
“”
“”
a.innerHTML=eval('"'+input.value+'"');
为什么一个unicode字符在段落标记中是有效的呢?我正在尝试测试变异XSS攻击,假设我输入“
sss”,服务器端可能不允许该字符串传递到innerHtml,但是如果内部内容被unicode隐藏,如\u0022,服务器端可能无法检测到。我在一篇名为“mXSS攻击:攻击安全性良好的Web应用程序”的论文中看到了这些东西
a.innerHTML=eval('"'+input.value+'"');