xss分为反射型,存储型,dom based xss 前两者很好理解  对于dom based xss有点绕  记录下。

常见的xss都是 客户端输入直接输出在html 假如没过滤存在js代码 将会被执行。

而dom based xss 它是不一样的。

下面用实例讲解

<script>
function a(){
 var str=document.getElementById('test').value;
 document.getElementById("t").innerHTML="<a href='"+str+"'>testlink</a>";
 }
</script>
<div>
    <input type="test" id='test' value=""/>
    <a href="" id='t'>test</a> <br/>
<input type="button" id="s" value="write" onclick='a()'/>
</div>

 会编程的 都可以看懂这是什么意思。

 事实上, DOM based xss 是从javascript中输出数据到html页面里。而存储型,反射型,都是针对服务器应用输出到html页面的xss漏洞。