前些日子老师告知我,上个星期上传的源代码中检测了XSS安全漏洞,要我彻底解决一下,做为新手的我依然是咬着牙寻东问西的找人帮忙找解决方法,最后在企业两个老员工的专业指导下重新写过了源代码彻底解决了这一个安全漏洞。现归纳如下所示:
第一步,简洁明了详细介绍一下XSS概念:
一、XSS详细介绍
XSS是xss漏洞(CrossSiteScripting)的简称。以便和堆叠样式表css样式(CascadingStyleSheets)对其进行分别,所以将xss漏洞简称为XSS。XSS因为一些恶意的网络攻击者往网站网页代码中插入恶意的Script源代码,当访客访问该网页代码时,置入的Script源代码将会被执行,进而做到恶意的主动攻击访客的特定效果。
二、XSS主动攻击效果及基本原理
因为对XSS主动攻击掌握并不是很深刻,目前暂时列出2条不良后果:
1)被恶意的访客检测恶意的表单提交。
2)普通用户见到这一个涉及到恶意的代码的网页代码并运行,获取访客的cookie等比较敏感个人信息。
三、XSS跨站主动攻击的解决方法
1、简立HttpServletRequestWapper的封装类。
这一个类的效果是对访客上传的post请求做好封装,把request中涉及到XSS源代码做好过虑,*遮盖getParameter方式,将主要参数名和变量值都做xss过虑。
*假如须要获取初始的值,则根据ultra.getParameterValues(number)来获取
*getParameterNames,getParameterValues和getParameterMap也很有可能须要遮盖.
*/
*遮盖getHeader方式,将主要参数名和变量值都做xss过虑。
*假如须要获取初始的值,则根据ultra.getHeaders(number)来获取
*getHeaderNames也很有可能须要遮盖
*这某段源代码在刚开始并没有xml注释掉造成发生406严重错误,根本原因是406严重错误是www协议的状态码的一类,
*指出不能使用post请求的內容特点来反应post请求的网站页面。通常指的是pc客户端火狐浏览器不接收所post请求网页代码的MIME形式。
将很容易造成xss安全漏洞的英文双引号会直接换成全角字符在确保不删掉信息的状况下储存
*@params
*@return过虑后的值。
过虑插入的信息,涉及到"’"“”"“<”“>”“ons*”等非法行为空格符。
对插入到网页代码的信息做好相对应的编码转换,涉及到html代码实体线代码,easyui代码等。
修补方式,认证方式:在能够上传信息到后台管理的功能性中,在表格中的文本框插入 (这里应除掉script上下的下划线),当完成储存到后台管理后,更新并查找此条信息,前端开发会把它当做是easyui源代码,就会弹窗提醒“1”这一个提醒。如果还是没有看明白该如何防止XSS的漏洞攻击,建议找专业的网站安全公司来处理,国内SINE安全,启明星辰,绿盟,深信服,鹰盾安全都是比较不错的。