javascript事件解码出现问题怎么办,当 javascript 代码经过编码带入页面,可以利用事件执行时解码的特性对单引号进行闭合,然后利用函数参数的特性进行解码处理。
在javascript 事件中,当参数是经过编码的值,javascript 会将期解码进行执行:
<a href=# onmousemove="alert(/woyi
gui/)">xxx</a>
另外,由于 javascript 支持 函数参数可以是 函数特性:
<script>x( alert(1) );</script>
利用两种特性,可引发安全问题:
<a href="#" onmousemove="xxx('+alert(1)+',44);return false;">woyigui</a>
当 javascript 代码经过编码带入页面,可以利用事件执行时解码的特性对单引号进行闭合,然后利用 函数参数 可以是 函数的特性进行解码。
该方法不能直接用于 《script》内,以下无法执行:
<script>
xxx('+alert(1)+');
</script>
在特定应用环境中,处理与解决 DOM 型XSS时,将更具有挑战。
解决方法:
在解码后,再次使用符号对其处理,但是考虑到特殊应用可能有所影响。