页面隐藏域未做处理,导致非法数据被执行怎么办?
最近,有个项目突然接到总部的安全漏洞报告,查看后知道是XSS攻击。
问题描述:
在页面上有个隐藏域:
XML/HTML Code复制内容到剪贴板
当前页面提交到Controller时,未对action属性做任何处理,直接又回传到页面上
如果此时action被用户恶意修改为:***"
"***
此时当页面刷新时将执行alert(1),虽然错误不严重,但是任何安全隐患都应受到重视。
解决思路:
该问题是由于对用户输入数据(隐藏域)未做任何处理,导致非法数据被执行,那么解决该问题的核心思路就是对用户数据做严格处理,对任何页面传递的数据都不应过分信任,处理方法如下:
1.在页面上对action参数做转义处理,${action?html}(前端技术采用freemarker),但是此种方法只能对单个属性有效,如果此时项目处于维护期且有大量此种问题,修复的难度较大且不便于统一维护
2.在服务端对用户数据做转义处理,此时需要创建一个filter,对request进行二次封装,核心代码如下:
Java Code复制内容到剪贴板
importjavax.servlet.http.HttpServletRequest; importjavax.servlet.http.HttpServletRequestWrapper; importorg.apache.commons.lang3.StringEscapeUtils; publicclassXssRequestWrapperextendsHttpServletRequestWrapper{ publicXssRequestWrapper(HttpServletRequestrequest){ super(request); } publicStringgetParameter(Stringname){ Stringvalue=super.getParameter(name); if(value==null){ returnnull; } returnStringEscapeUtils.escapeHtml4(value); } publicString[]getParameterValues(Stringname){ String[]values=super.getParameterValues(name); if(values==null){ returnnull; } String[]newValues=newString[values.length]; for(inti=0;i XssRequestWrapper是对request进行的二次封装,最核心的作用是对request中的参数进行转义处理(需要用到commons-lang3.jar) 定义filter,核心的代码如下: Java Code复制内容到剪贴板 @OverridepublicvoiddoFilter(ServletRequestrequest, ServletResponseresponse, FilterChainchain)throwsIOException,ServletException{ HttpServletRequestreq=(HttpServletRequest)request; chain.doFilter(new 在web.xml中配置指定请求进行过滤,可以有效防止xss攻击,希望本文所述对大家熟练掌握防止xss攻击的方法有所帮助。
telnet命令的字符有哪些?telnet特殊命令模式escape
除了在Telnet是如何工作的例子介绍的以外,Telnet还有很多的特点。Telnet可发送除了 "escape "的任何字符到远程主机上。因为 "escape "字符在Telnet中是客户机的一个特殊的命令模式,它的默认值是 "Ctrl-] "。但要注意不
详情2018-01-24 09:30:59责编:llp 来源:驱动管家qq空间如何挂马?qq空间挂马的原理是什么?
今天我来跟大家谈论一下关于QQ空间挂马的原理,我试了一下,成功率占80%。有好多人都问我怎么样才可以做到肉鸡成群,我想了好久,觉得QQ空间挂马可以实现这个。所以我试做了一下,竟然成功了!~~那我就想大家介绍
详情2018-01-29 17:56:19责编:llp 来源:驱动管家破解xp登陆口令的前提是什么?这里有破解登陆口令的步骤
Windows XP强大而友好的系统界面博得了越来越多用户的青睐,然而它对用户安全性的审核即是非常严格的,要是你忘记了设置的口令(密码),可别以为能够像Windows98那样选择“取消”同样可以进入系统--这一点相
详情2018-02-04 09:13:37责编:llp 来源:驱动管家什么是sql触发器?sql触发器存在后门asp版
触发器是一种特殊的存储过程,它不能被显式地调用,而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活。 所以触发器可以用来实现对表实施复杂的完整性约束。SqlServer包括三种常规类型的触发器:DML触
详情2018-01-22 09:57:49责编:llp 来源:驱动管家efs加密文件系统怎么用?使用efs加密文件系统的技巧有哪些?
使用Windows 2000 XP Server 2003的用户一定听说或接触过EFS,但由于其较为复杂,弄不好就会丢失数据。因此,很多人并没有使用它。其实,EFS并没有我们想像中的那样难,关键要真正玩转它,我们需要掌握好几个关
详情2018-02-05 15:55:46责编:llp 来源:驱动管家局域网入侵怎么办?假造源地址进犯的解决方法
【毛病表象】假造源地址进犯中,黑客机器向受害主机发送许多假造源地址的TCP SYN报文,占用安全网关的NAT会话资源,最终将安全网关的NAT会话表占满,招致局域网内一切人无法上彀。【疾速查找】在WebUIà体
详情2018-01-19 16:31:59责编:llp 来源:驱动管家网站漏洞扫描器:流光扫描器怎么扫描主机?
直接进入主题1、首先,在电脑上安装流光扫描器,解压的时候要注意解压密码2、安装完成后,我们按照它的提示进如主程序页面,在页面中我们在任务栏可以看到很多的服务,在开始总,我们输入扫描的网段就可以看到很
详情2018-01-15 17:27:28责编:llp 来源:驱动管家数字签名有哪些过程?数字签名的原理是什么?
数字签名和加密的基本原理及其区别?1 数字签名主要经过以下几个过程:信息发送者使用一单向散列函数(HASH函数)对信息生成信息摘要;信息发送者使用自己的私钥签名信息摘要;信息发送者把信息本身和已签名的信
详情2018-01-20 13:30:15责编:llp 来源:驱动管家加密方案可以分为哪两类?加密方案涉及的主要技术
当前软件加密方法多种多样,已经不可能找出一种分类方法来把各种加密方案很好地区分开来。基本上来说可以分为依赖特定硬件的加密方案和不依赖硬件的加密方案。一、依赖硬件的加密方案软盘加密这是在计算机上最为
详情2018-02-06 18:01:57责编:llp 来源:驱动管家文档安全的加密技术 文档安全加密系统的原理
加密技术是利用数学或物理手段,对电子信息在传输过程中或存储设备内的数据进行保护,以防止泄漏的技术。在信息安全技术中,加密技术占有重要的地位,在保密通信、数据安全、软件加密等均使用了加密技术。常用的
详情2018-01-13 15:37:44责编:llp 来源:驱动管家
- 为什么显卡驱动会安装失败?显卡驱动安装失败要如何处理
- securecrt怎么设置颜色?securecrt允许修改颜色吗?
- qq消息提醒怎么关闭?在哪儿关闭QQ消息提醒
- 尼克尔镜头怎么样?尼克尔镜头具体参数介绍
- 腾龙镜头怎么维修和保养?腾龙镜头维修技巧分享
- 电脑开机密码设置方法最详细的介绍
- 电脑护眼设置方法:显示器背景颜色更换方法介绍
- 三星galaxy sii电信版如何刷机?三星galaxy sii的刷机方法
- oppo r1如何设置手机通话自动录音?
- vst全聚合怎么添加影视资源?vst全聚合添加源的方法
- web与sql怎么分离?如何让web与sql分离?
- 怎样制作祝福二维码?二维码制作方法是什么?
- pptv播放时为什么只有声音没有画面?pptv没有画面怎么办?
- 鱼眼镜头怎么用?鱼眼镜头使用技巧有哪些
- 几款常用的尼康大三元镜头详细介绍
- 怎么用format命令来格式化磁盘?win8系统格式化磁盘的方法
- 如何设置打印机共享?教你在xp系统上设置打印机共享
- 无线网络连接不上有哪些原因?要怎么解决这一问题
- galaxy s3 mini可以按这份教程进行刷机
- galaxy s5通话声音小如何解决?解决galaxy s5通话声音小的四种办法