因为近期负责的几个银行系统软件,需要交付客户,因此客户专门请了安全公司对系统进行了安全评测,结果发现了诸如跨站执行脚本,远程执行漏洞以及弱口令等问题。
下面记录下本次解决的过程以便后续
1、首先从最简单的开始处理,服务器的弱口令问题,首先根据安全工具提供的测试描述中发现应用服务器中存在一个匿名用户,默认是不需要密码的,经过分析发现服务器使用了FTP协议,
而使用ftp协议默认会产生一个匿名用户,因此解决方案是删除该匿名用户。
2、再次就是解决跨站执行脚本的漏洞,首先在网上各种资料查找,彻底的了解了什么是跨站脚本漏洞以及产生的原因,也终于明白了为什么我们的项目会存在问题,主要是在JSP中存在直接将输入内容回显到页面中,并且未对输入内容做任何检查。
知道问题原因当然就开始修改了,鉴于对安全这块了解不深,自己写的过滤器也非常简单,仅能过滤一些情况还是会存在风险,因此在网上找了一个专门安全大拿写的针对java过滤xss的处理类(xss-html-filter-xss-html-filter-1.5)。有了这个利器
就开始将它融入到我们系统中了,因为目前系统已经处理交付阶段,不便于一个类一个类进行调整,因此预想统一使用了过滤器过滤输入内容。当然这里有遇到一些问题
因为HttpServletRequest类中没有提供重新设置paramter值的方法(项目中多使用getParamter获取参数),所以想到了使用装饰模式,即封装getParamter方法(其实getAttribute等一些方法也封装了;ps:只针对String类型处理),在返回值时过滤输入值,这里继承了httpservletrequestwrapper类,
然后再注册一个filter,经过验证确实达到了过滤输入字符串的目的。
3、最后解决的是远程漏洞执行,这个主要是因为项目本身使用了struts2,并且版本是比较低的2.3.4,网上很多都有描述低版本的存在风险,因此从官网下载了最新的2.3.24,然后就是各种替换jar包。
替换完后启动项目又发现报错,说需要使用新的filter,原来老的FilterDispatch已经建议不使用了,struts2建议使用新的StrutsPrepareAndExecuteFilter。配置上最新的filter类后启动没有问题呢,但是
有报错“There is no Action mapped for namespace[/] and action name [login] associated with context path [/login]”,解决此问题只需要通过在struts.xml根节点中添加如下节点<constant name="struts.enable.DynamicMethodInvocation" value="true"/><constant name="struts.convention.action.mapallmatches" value="true" />
分享到:
相关推荐
Struts2.3.4是Apache Struts框架的一个版本,这是一个流行且强大的Java Web应用程序开发框架,主要用于构建基于MVC(Model-View-Controller)设计模式的Web应用。该框架的核心在于提供了一种用于处理HTTP请求和响应...
Struts 2.3.4 是一个非常重要的Java Web开发框架的版本,它基于MVC(Model-View-Controller)设计模式,旨在简化企业级应用的开发过程。这个压缩包包含的是Struts 2.3.4版本的帮助文档,对于开发者来说是一个宝贵的...
Struts2.3.4 API帮助文档是针对Apache Struts 2框架的版本2.3.4的一个详尽参考资料,该框架是Java EE平台上用于构建Web应用程序的流行MVC(模型-视图-控制器)框架。这个API文档包含了对框架核心组件、拦截器、插件...
Struts2.3.4-all 是一个集合了Struts2框架所有组件的压缩包,它包含Struts2框架的核心库、插件以及其他相关的资源文件。Struts2是一个基于MVC(Model-View-Controller)设计模式的开源Java Web框架,用于简化Java EE...
Struts2.3.4 API中文版是针对Java Web开发框架Struts2的3.4版本的官方API文档的中文翻译版本。这个框架是Apache软件基金会下的一个项目,旨在提供一个用于构建MVC(Model-View-Controller)架构的、灵活的、可扩展的...
Struts2.3.4是Apache Struts框架的一个版本,这是一个非常流行的开源MVC(Model-View-Controller)框架,用于构建Java web应用程序。在Java EE世界中,Struts2提供了一个强大的、灵活的和可扩展的架构,帮助开发者...
Struts2远程命令执行漏洞解析 漏洞解析 远程命令 Struts2
8. **安全更新**:作为版本更新的一部分,Struts2.3.4可能会包含一些安全补丁,修复已知的安全漏洞,以保护应用程序免受攻击。 9. **性能提升**:每次版本迭代通常都会关注性能优化。Struts2.3.4可能通过改进内部...
2012年最新版本的Struts2.3.4帮助文档
Struts2.3.4 api chm 中文版
Struts 2.3.4 是 Apache Software Foundation 开发的一款基于 Model-View-Controller (MVC) 设计模式的开源 Java Web 框架。它主要用于构建和维护可扩展、结构清晰的 J2EE 应用程序。Struts 2 的出现是 Struts 1 的...
最新的Struts帮助文档 方便Struts的接口查询
Struts2 远程代码执行漏洞分析(S2-013) Struts2 是 Apache 官方的产品,最近出了一个远程代码执行漏洞,编号“S2-013”,目前是...Struts2 远程代码执行漏洞(S2-013)是一個非常危险的漏洞,需要立即采取措施修复。
这个帮助文档只有org.apache那部分,是我自己使用工具生成的帮助文档,当遗憾的是这个帮助文档并不完整,因为我只会生成apache那一部分,还有那个xwork-core那部分我不会,仅...但我保证这个绝对是struts2.3.4的帮助。
在 "struts 2.3.4最新中文API" 中,开发者可以找到关于 Struts 2.3.4 版本的所有核心类、接口和方法的详细文档。API 文档通常包含以下几个部分: 1. **ActionSupport**:这是 Struts 2 中所有 Action 类的基础类,...
最新 struts2.3.4 API chm 文档
最新版Struts API struts2.3.4.chm
Struts2.3.4是Apache Struts框架的一个重要版本,该框架是基于MVC(Model-View-Controller)设计模式的Java Web应用程序开发框架。它极大地简化了Java Web应用的开发过程,提供了丰富的功能和组件,使得开发者可以...
使用Struts2.3.4时,开发者需要注意配置Struts2的配置文件(通常为`struts.xml`),定义Actions、Results和Interceptors,以及任何自定义的插件。同时,编写Action类以处理业务逻辑,并通过OGNL将数据传递给视图层。...