struts2版本升级

(2.3.16.3升级到2.3.20)

版本改进:

?         合并后的安全修补程序版本中,2.3.16.1、 2.3.16.2、 2.3.16.3

?         扩展现有的安全机制来阻止访问给定的 Java 包和类

?         RedirectResult 参数集合

?         在默认情况下,使 ParametersInterceptor 支持中文哈希键

?         themes.properties可以使用加载  ServletContext 允许放在 WEB-INF 下或在类路径中的模板文件夹

?         新标记 datetextfield

?         只有缓存有效的 Ognl 表达式

?         自定义 TextProvider 可用于验证错误的模型驱动的行动

?         datetimepicker 的标签固定

?         PropertiesJudge 删除和属性已签入 SecurityMemberAccess

?         在 IBM JVM 资源重新加载工作

?         默认加载设置已被删除从 default.properties

?         commons-fileupload.jar升级到版本 1.3.1 要修复潜在的安全漏洞

?         <s:url> 标记组合属性可以使用表达式

?         解决 FastByteArrayOutputStream 中的无限循环问题

?         LocalizedTextUtil 支持很多的类加载器

?         介绍了条例草案的材料 pom

?         debug = browser|console 被迁移到 jQuery

?         struts_dojo.js 被固定的

?         新增接口 org/apache/struts2/views/TagLibray,并且标记为 @Depreacted

Struts.xml :

Struts 2.3.20 配置文件新增加了参数为struts.excludedClasses,此参数为了严格验证排除一些不安全的对象类型。

<constant name="struts.excludedClasses"

value="

java.lang.Object,

java.lang.Runtime,

java.lang.System,

java.lang.Class,

java.lang.ClassLoader,

java.lang.Shutdown,

ognl.OgnlContext,

ognl.MemberAccess,

ognl.ClassResolver,

ognl.TypeConverter,

com.opensymphony.xwork2.ActionContext" />

<constant name="struts.excludedPackageNamePatterns"

value="^java\.lang\..*,^ognl.*,^javax.*" />

“java.lang.Classs”值过滤struts标签中静态方法调用

升级注意事项:

替换jar包:

l         xwork-core-2.3.20.jar

l         struts2-json-plugin-2.3.20.jar

l         struts2-core-2.3.20.jar

l         commons-lang3-3.2.jar

l         freemarker-2.3.19.jar

项目struts.xml文件添加

<constant name="struts.excludedClasses"

value="

java.lang.Object,

java.lang.Runtime,

java.lang.System,

java.lang.ClassLoader,

java.lang.Shutdown,

ognl.OgnlContext,

ognl.MemberAccess,

ognl.ClassResolver,

ognl.TypeConverter,

com.opensymphony.xwork2.ActionContext" />

时间: 2024-10-12 04:57:22

struts2版本升级的相关文章

Struts2版本升级到struts2 2.3.15.1操作说明

Struts2的官网公布了一个远程命令执行漏洞,官方强烈建议升级到2.3.15.1或者以上版本,该版本包含校正过的struts2核心库. 我们之前开发项目主要采用的Struts2版本是2.2.1,本文介绍下Struts2从2.2.1升级到2.3.15.1的过程. 首先自Struts官方网站下载struts-2.3.15.1-all.zip,里面包含所需要的jar. 删除项目中如下jar文件: 将struts-2.3.15.1-all.zip中的如下jar文件加到项目中: 升级jar之后,测试项目

struts2 版本所导致的 Filter 不同

过了好久又重新接触Struts2,使用maven直接获取的struts2-core-2.5.1的包,从网上直接copy了一段web.xml中的Filter,结果报错,struts2.3.x  以后用以下配置: 1 <filter> 2 <filter-name>struts2</filter-name> 3 <filter-class> 4 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExe

转:Struts2框架安全缺陷

当前java开发网站,通常不会是纯JSP的,大都使用了java framework. 有了这些framework,让开发人员更加快速的开发出代码,也让代码非常具有可扩展性,那些分层架构的思想,更是深入人心.这些也大大影响了安全代码审核,曾提出"分层审核代码"的思想,比如在DAO层专门检查sql注入,在view层检查xss等.这些框架都有自己的层级,本次文章主要讲的是struts这个框架的相关安全问题,也会有小部分涉及到struts后面的DAO层. 而struts这个框架更新占有市场份额

Apache Struts2高危漏洞(S2-057CVE-2018-11776)

花了两天时间,特此记录 一:背景: 2018年8月22日,Apache Strust2发布最新安全公告,Apache Struts2存在远程代码执行的高危漏洞. 二:漏洞产生原理: 1.需要知道对应跳转请求的action名称 2.Struts2框架中的属性设置为: 1) struts.mapper.alwaysSelectFullNamespace = true 2) type = "redirectAction"或 type = "chain" 三:恶意代码运行过

解决myeclipse中struts2 bug问题包的替换问题

因为struts2的bug问题,手工替换还是比较麻烦,但即便是最新的myeclipse2014也没有替换最新的struts2包,研究了一天,终于找到了解决办法.以下就解决方法与大家分享一下. 1.在perferences中找到 Myeclipse->Project Libraries,右边找到 struts2.1 Libraries,点击 Enable advanced configiguration,去掉以下文件前面的对勾,然后点击 Add custom Jars 2.在弹出的对话框中选择 A

【Struts2】SSH如何返回JSON数据

  在开发中我们经常遇到客户端和后台数据的交互,使用比较多的就是json格式了.在这里以简单的Demo总结两种ssh返回Json格式的数据 项目目录如下 主要是看 上图选择的部分 WebRoot里面就是平常的配置 第一种方法是使用com.google.gson.Gson 将对象转化为Json字符串  (gson-1.6.jar) 主要的代码如下 1 package com.javen.tool; 2 3 import java.io.IOException; 4 import java.io.P

Struts2学习第三课 访问Web资源

1.什么是WEB资源? HttpServletRequest,HttpSession,ServletContext等原生的Servlet API. 2.为什么访问WEB资源? B/S的应用的Controller中必然需要访问WEB资源,例如,向域对象中读写属性,读写Cookie,获取realPath等等. 3.如何访问? 在Action中,可以通过一下方式访问web的HttpSession,HttpServletRequest,HttpServletResponse等资源 与Servlet AP

struts2+hibernate+spring简单整合且java.sql.SQLException: No suitable driver 问题解决

最近上j2ee的课,老师要求整合struts2+hibernate+spring,我自己其实早早地有准备弄的,现在都第9个项目了,无奈自己的思路和头绪把自己带坑了,当然也是经验问题,其实只是用myeclipse进行整合的,本来也没那么多问题,看视频吧居然好多要手打,我不喜欢看不下去放弃了,教程把就是一堆坑,最最让人不解的是明明有一个冲突是需要解决的,但我看到的教程居然都没有提到,还有一个错误居然好多人都好像自动忽略一样,能解决我问题的都是要漫长的找,所以我一定一定要把这个过程记录下来,给第一次搞

SSH Struts2+hiberante+Spring整合

使用SSH框架编写学生信息: 一.新建Java工程: (1)建立好Java各层级之间的结构:业务处理层dao,数据模型层domain,页面请求处理层(Struts2 MVC层)action,service层. (2)建立好各层的实现类及接口; (3)建立一个source folder文件夹,用来存放一些配置问价. (4)改变字节码生成的位置,改为WEB-INF下面的classes文件夹下. Java工程层级结构如下图: 二.hibernate整合到Spring容器中 步骤: 1.编写domain