关于struts2漏洞问题及解决办法
改成
<result name="xxx" type="redirectAction">
改动后,再次启动,在console日志里可以看到会有使用的过期声明,如:
ActionContextCleanUp <<< is deprecated! Please use the new filters! ?
在升级之后FilterDispatcher、ActionContextCleanUp已经不建议使用了,具体的解决办法是在web.xml中改下struts配置:
原来:
<filter>
???<filter-name>struts2</filter-name>
???<filter-class>
?????org.apache.struts2.dispatcher.FilterDispatcher
???</filter-class>
</filter>
改成:
<filter>
??<filter-name>struts2</filter-name>
??<filter-class>
????????org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
??</filter-class>
</filter>
?
再次改了之后再启动,已经可以启动整个应用,但是具体的时候过程中,还是会遇到问题,我所碰到的是主要是两个问题:
1、原来使用struts2标签,在jsp页面上用静态方法时如@com.xx@xxx()时,这种页面会有异常,具体的解决办法如下:
在struts2文件中引入:
<constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant>
?
2、使用到<s:optiontransferselect ...标签时无法在action中取到选中的数据,具体解决办法,更新下optiontransferselect.js文件,文件在附件中,并且将原来jsp文件中引入如下标签:
<%@ taglib prefix="sx" uri="/struts-dojo-tags"%>
,将原来<s:head ajax="head"... 改成?<sx:head/>
?
解决了这两个问题后,基本我就没发现有其他的问题,测试完成,具体的测试办法,可参考各种struts2漏洞的博客,里面有更详细的描述,我这里只讲一下解决办法,希望能给码友们提供参考。
?
?
?
?