这是一个非常简单的攻击。
两个页面如下:
<form action="MyJsp.jsp" method="get">
<input type="text" name="content"/>
<input type="submit" values="submit"/>
</form>
<%
out.print(request.getParameter("content"));
%>
如果攻击者在输入框里面输入以下内容:
<script>alert('Help me ask you sisiter hello...')</script>
那么就有以下结果:
当然,用户还可以输入:
<script>alert(document.cookie)</script>
用户还可以直接在地址栏输入:如下:
不仅可以注入script,还可以直接注入html代码。。。
http://localhost:8080/Test/MyJsp.jsp?content=<script><a href="http://weibo.com/shangaoquangengqing">My Weibo</a></script>
攻击者输入的内容可以改的,大家都明白这是很危险的。
这个在高级的浏览器,比如现在的360急速浏览器是不能通过的,具体原因未深究。
防范方法很多,最简单的就是将代码的一下基本字符替换掉,比如< > " \等。
以后写代码留意一点就行。