由于struts旧版本爆出多个高危漏洞,对于安全性考虑需对struts升级到最新版本。

升级过程中遇到很多坑,经过一段时间的盘查发现,其实这个升级很简单。

我升级的是struts2.5.16,当前官网里面的最新版,以后就不晓得了。。。。咳咳

第一步:找jar包,为什么要找jar包?因为我维护的是老项目,如果你的不是请看最下面。

        这是一个很蛋疼的过程,因为看网上升级的方法,替换的jar包都不是很明确,五花八门。进过我逐一排查,反正试了蛮久,最后一下就搞定了。

        替换的jar包如下

        asm-5.2.jar      asm-commons-5.2.jar    asm-tree-5.2.jar    commons-fileupload-1.3.3.jar    

       commons-io-2.5.jar     commons-lang3-3.6.jar    commons-logging-1.1.3.jar    

       freemarker-2.3.26-incubating.jar   javassist-3.20.0-GA.jar      log4j-api-2.10.0.jar    

       ognl-3.1.15.jar    struts2-core-2.5.16.jar

       删除原来的旧包同上,xwork-core-2.3.16.3.jar这个也需要一并删除,最新版集成了该jar包

第二步:修改web.xml

旧版中:路径如下

新版中:路径如下

将 <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

替换成<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>

第三步:修改struts.xml

           1.改掉头部

<!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
    "http://struts.apache.org/dtds/struts-2.5.dtd">

           2.将action设置动态访问

           <constant name="struts.enable.DynamicMethodInvocation" value="true" />

          3.package后面加一个strict-method-invocation="false"

  <package name="GameWebsite" namespace="/" extends="struts-default" strict-method-invocation="false">

三步做完了需要将tomcat里面的项目删除重新发布

页面访问如果可以访问后台则替换成功。

如果报错404,500,之类的,你需要跟据项目的结构替换jar包,或者增加配置,配置sturts.xml

struts升级很多坑,我也是从里面刚爬出来。爬出来发现,其实分分钟能搞定的事搞了这么久!!!

        作者吐槽:老项目都会存在这个问题,那些自己导jar包的项目,如果你的项目使用了maven,那么就不会有这种麻烦了,直接改下版本号搞定!

关于struts2漏洞(升级struts到最新版本)相关推荐

  1. 生产环境openssl漏洞-升级openssl到最新版本

    TLS是安全传输层协议,用于在两个通信应用程序之间提供保密性和数据完整性. TLS, SSH, IPSec协商及其他产品中使用的DES及Triple DES密码存在大约四十亿块的生日界,这可使远程攻击 ...

  2. linux centos升级php_CentOS使用yum升级php到最新版本

    CentOS的php版本默认为5.1.6,然后在5.2.9版本之前的的php都存在一个漏洞,但是目前网上很多地方都无法使用yum update php*升级到最新版本,比较常见的是升级到5.2.6版本 ...

  3. yum如何升级php,CentOS 5.3 通过yum升级 php到最新版本的方法

    方法一 CentOS5.3的php版本默认为5.1.6,然后在5.2.9版本之前的的php都存在一个漏洞,但是目前网上很多地方都无法使用yum update php*升级到5.2.9,比较常见的是升级 ...

  4. pip show pip可以查看pip的版本以及升级pip到最新版本

    输入命令:pip show pip可以查看pip的版本,如果不是最新版最后会有提示如下: 输入命令:python -m pip install --upgrade pip可以升级pip到最新版本.

  5. Linux升级gcc到最新版本gcc-11.2.0

    Linux升级gcc到最新版本gcc-11.2.0 当前环境 更新方法 1. 下载最新的源码包并解压缩 2.下载依赖及配置文件 3. 配置 4. 编译 5. 安装 6. 验证gcc版本 7. 删除旧版 ...

  6. Linux升级gcc到最新版本--gcc-9.1.0

    Linux升级gcc到最新版本–gcc-9.1.0详细步骤 一.下载gcc最新的源码包–>wget http://ftp.gnu.org/gnu/gcc/gcc-9.1.0/gcc-9.1.0. ...

  7. 升级bugzilla 到最新版本成功 bugzilla 3.2

    升级bugzilla 到最新版本成功 bugzilla 3.2 Stable Release (3.2) Bugzilla 3.2 is our current stable release in t ...

  8. Struts2漏洞和Struts Scan工具实战

    一.Apache Struts 2漏洞背景 1.漏洞详情 2017年3月6日,Apache Struts 2被曝存在远程命令执行漏洞.在使用基于Jakarta插件的文件上传功能条件下,恶意用户可以通过 ...

  9. linux docker升级,CentOS上面升级Docker到最新版本

    一般我们用yum安装的docker版本是1.6或者1.7,我们要把docker升级到最新的版本. 首选我们验证一下系统里的docker版本[root@xiaohuai ~]# docker -v Do ...

最新文章

  1. Learn OpenGL (十一):光照贴图
  2. WINDOWS SERVER 2003从入门到精通之组策略应用
  3. 已解决:大家使用原子哥的延时函数delay_ms,delay_us会出现进入延时函数出不来的情况
  4. android 页卡切换实现,TabLayout+ViewPager实现选项卡切换效果
  5. 《零基础看得懂的C++入门教程 》——(8)搞定二维数组与循环嵌套
  6. Android开发中调用Spring CXF整合发布的WebService接口为什么抛出异常错误?
  7. 唐宇迪学习笔记12:sklearn构造决策树
  8. 无人驾驶相关文献阅读体会
  9. 一套数据中心弱电系统安全运维服务方案,完整版素材!
  10. python 如何通过海表面高度数据计算海表地转流速、并绘制流线图
  11. cad相对坐标快捷键_cad 怎么用相对坐标
  12. 中国天气网-天气预报接口api
  13. redis mset是否具有原子性
  14. ecshop模板支持html,免费ecshop响应式设计手机wap自适应dossy整站模板
  15. su,su -,sudo
  16. cenos回到linux桌面快捷键,Centos桌面 快捷键
  17. 【计算机组成原理】计算机组成原理——计算篇
  18. dapr的consistent hash
  19. 「伯克利大学」 的计算机入门教程
  20. 计算机学院毕业礼物,“风里雨里,我们在这里等你“计算机学院举行毕业礼物赠予仪式...

热门文章

  1. android 支付吧 漏洞,趋势发现支付宝安卓版漏洞  建议尽快更新至最新版
  2. 【优化求解】基于吉萨金子塔建造优化算法 GPC求解最优目标matlab代码
  3. ADC-DAC知识体系--DAC性能指标
  4. 基线_【1040.】基线分析的3个终极目的
  5. opencv编译错误FFMPEG: Download failed: 6;“Couldn‘t resolve host name“
  6. MOS/CMOS集成电路简介及N沟道MOS管和P沟道MOS管
  7. Cygwin编程环境
  8. 使用百度地图绘制点、线、面 | Javascript
  9. xsi:noNamespaceSchemaLocation的解析
  10. 吴志祥php动态网页设计_PHP动态网页制作—毕业设计论文.doc