Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:无法加载Unicode符号_Javascript_Html_Unicode - Fatal编程技术网

Javascript:无法加载Unicode符号

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

我的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"  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转换为“%”:


您有两个不同的字符串,相当于:

  • 为了获得相同的值,必须将第二个字符串作为JavaScript字符串文字进行求值:

    a.innerHTML=eval('"'+input.value+'"');
    

    为什么一个unicode字符在段落标记中是有效的呢?我正在尝试测试变异XSS攻击,假设我输入“

    sss”,服务器端可能不允许该字符串传递到innerHtml,但是如果内部内容被unicode隐藏,如\u0022,服务器端可能无法检测到。我在一篇名为“mXSS攻击:攻击安全性良好的Web应用程序”的论文中看到了这些东西

    a.innerHTML=eval('"'+input.value+'"');