1.常见XSS漏洞1--get请求回显漏洞
当我们的网页使用的是get请求的时候,服务器后端将get请求的字符串编码(在浏览器上使用的是encode编码)回显到页面的时候,
如果我们输入的是正常的一段字符,那么,他显示的是一段字符,然而,如果我们输入的是一段html代码呢???那么回显的就是一段html代码,当你的页面允许这样的时候,那么就要注意了,别人可以在你的链接上面加很长一段自己的html,然后他把这个伪造的连接发给别人,说你的官网最近有活动,事实上,是他生成在get请求上做了一点手脚,而你的服务端,回显的时候,产生的这样的问题。。。。
2.常见的XSS漏洞2--论坛回复
不知道大家有没有尝试过,当我们再论坛输入的是字符串的时候,下面回显的是,你的回复的字符串信息,但当你输入的是一段html
的时候,页面显示的是什么呢???甚至,我们还可以在上面加一段js代码,例如<script>alert("哈哈");</script>,别人访问你这个页面的时候,就可能弹出这个哈哈对话框,这个还是好的,如果别人在js上加个js跳转到其他页面,哈哈,这只要以后任何人访问该页面的时候,是不是都会跳转到其他页面,而永远都进入不了你这个页面了呢???
3.解决方案
在asp.net上的解决思路是,在在页头的标签里面加上validateRequet="true",然后,提交过了的数据,服务器会自动防xss漏洞,当然默认不设置也是true
在java中,需要自定义过滤器来防止xss注入,这种方式跟防止sql注入很像,同样的可以使用过滤器,当然在防sql注入中,可以使用preparedStatement,如何使用过滤器防止xss注入和防止sql注入,你一定可以在百度上找到解决方案。