Xss跨站脚本经验总结Cross Site Scripting

最近这段时间我所在的公司让我搞一些有关网络安全方面的东西,其实是有关安全机制方面的工作,现在所做的项目整体已经到了维护的阶段,我所处的项目组现在还在改造,不过遗留了好多bug,特别是有关Xss方面的,(XSS跨站脚本 http://de.wikipedia.org/wiki/XSS或者http://baike.baidu.com/view/50325.htm)。详情请参考以上网址。

1.在网页中嵌入客户端脚本(例如JavaScript), 当用户浏览此网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的.  比如获取用户的Cookie,导航到恶意网站,携带木马等。

2.他经常发生在如下情况,比如在你的地址栏参数后面加一串javacript脚本,就会在你请求晚场之后弹出对话框,或者在后面加入一些敏感字符,如:单引号,分号,alert等等,他的变种有好多。

eg:Http://localhost:8080/test/index.jsp<script>alert(123)</script>

如果存在跨站脚本就会弹出123.

3.解决方案:

大概思路:

原因——》为什么会出现Xss跨站攻击,大部分是(恶意或用专业的工具扫描)用户在客户端向服务器发送一个请求的时候,掺杂了一些非法字符,如上面提到的,如果不进行过滤,就会出现跨站攻击。

方法——》对每次提交过来的参数、表单对象进行过滤,用到了request.getParam(),request.getAttrbute(),一个是获取string参数值,一个是表单对象。在没有响应之前就对其进行过滤,然后在将其提交相应。

具体实现——》写一个工具类,用到了XSSProtect(上面提到的Google XSSProtect),参考其文档写一个工具类;然后写一个HttpRequestWrapper,将其参数进行过滤后包装;最后写一个Filter,得到所有的请求资源,对请求资源过滤,实现其doFilter方法,然后在web.xml中配置。

4.注意事项

希望对大家有所帮助!谢谢!有关安全机制方面的东西还需要学习很多,希望大家多多分享!

相关推荐