Strtus 2.2.3 升级到 Strtus 2.3.15 要点

最近用JAVA开发了一个动漫网站 ( www.dmvcd.com , 纯兴趣), 历经半个多月, 网站算是基本开发完了. 因为钱包的红牛数量有限, 租了个比较便宜的主机. 内存只有2G, 怕程序会挂掉, 于是自己写了个 monitor 监控程序, 可以自动检测和重启网站, 还会发email通知.

最后用了百度的云观测(功能强大, 包括监控网站的功能, 缺点是不能自动重启网站, 呵呵). 问题来了, 刚用了云观测没多久, 就收到了百度的邮件通知和短信通知, 告知网站存在 strtus 漏洞, 危害就是 被黑客入侵,引起 数据库泄露网站被篡改等. 我用百度的测试URL来测试, 发现确实会导致网站发生异常, 甚至挂掉.

好吧, 既然度娘都提醒有漏洞, 那就修复吧(有BUG必修是我们程序猿的天性, 呵呵). 网站www.dmvcd.com 之前用的strtus版本是2.2.3, 度娘说在2013年6月底, apache发布的

Struts 2.3.15版本被曝出存在重要的安全漏洞, 需要升级到最新版本或是打补丁.

下图是网站strtus升级之前,用到的部分jar包:

直接升级到最新的2.3.24版本, 更新后的部分jar包如下:

Strtus2.3.24最新jar包下载地址:  http://mirrors.cnnic.cn/apache//struts/2.3.24/struts-2.3.24-lib.zip

[注意] 有个问题要注意: 从strtus官网上下载的jar不能全部导入到 WEB-INF的lib下, 会出现各种问题(终究是些jar冲突, 或是版本兼容的问题), 所以升级自己需要的jar包就可以了.

jar更新完之后, 网站在用DMI动态调用Action的方法的时候, 出现404错误(提示 could not find action or result异常). 好吧, 继续问度娘. 度娘说strtus 2.3.15

版本后, 默认是关闭DMI动态调用action 方法这个功能的.

知道问题就好办, 直接在strtus配置文件里配置一下, 开启这个功能就可以了. 在struts.xml中, 增加了下面的配置:

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

再测试一下, 问题解决. 这里要提示一下: strtus官方推荐使用通配符的方式来配置, 而不是 action!methodName 的方式来调用.

[ strtus升级小结 ]:
1. strtus.xml 中版本的声明需要修改为:

<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd">

2. 仅升级自己需要的jar包.

3. 开启动态DMI调用Action的方法, 在strtus.xml中 增加 <constant name="struts.enable.DynamicMethodInvocation" value="true" />

PS :

如果各位兄弟发现我的小网站有什么漏洞或不足, 可以留言给我, 哈哈...

时间: 2024-10-23 02:36:19

Strtus 2.2.3 升级到 Strtus 2.3.15 要点的相关文章

修复Strtus远程命令执行漏洞 : Strtus 2.2.3 升级到 Strtus 2.3.24

最近用JAVA开发了一个动漫网站 ( www.dmvcd.com , 纯兴趣), 历经半个多月, 网站算是基本开发完了. 因为钱包的红牛数量有限, 租了个比较便宜的主机. 内存只有2G, 怕程序会挂掉, 于是自己写了个 monitor 监控程序, 可以自动检测和重启网站, 还会发email通知. 最后用了百度的云观测(功能强大, 包括监控网站的功能, 缺点是不能自动重启网站, 呵呵). 问题来了, 刚用了云观测没多久, 就收到了百度的邮件通知和短信通知, 告知网站存在 strtus 漏洞, 危害

Windows 10 1803 OS升级与Citrix VDA 7.15 LTSR兼容性问题

最近在忙着做3D VDI项目,所以没更新关于Citrix的文章,昨天有一哥们问到一些关于Citrix的问题,才想起来本来打算要写的一个总结:关于Windows 10 OS版本升级与Citrix VDA 7.15的兼容性问题.今天有点时间,来总结一下. 最近接到通知,我们团队负责运维的Citrix VDI桌面的Windows7系统要在明年6月底之前,全部要migration到Windows10,5000多台啊!还是趁早开干吧. 首先统计了一下当前系统版本种类,其实大概500台已经升级到Window

k8s升级v1.14 to v1.15

Upgrading kubeadm clusters from v1.14 to v1.15yum list --showduplicates kubeadm --disableexcludes=kubernetes find the latest 1.15 version in the list it should look like 1.15.x-0, where x is the latest patch replace x in 1.15.x-0 with the latest patc

思科 (CISCO) 交换机 ? C3750-E ? 6. 升级 ISO

[简介]思科交换机 Catalyst 3750-E Series 生产于 2007 年,原有系统已经很老了,为了让它换发出新春,我们可以对它的系统进行升级.   升级前的准备 首先我们需要一个新版的 Catalyst 3750-E Series 思科交换机 ISO 文件,网上可搜索到很多,这里我们推荐一个2015年版本的,下载链接是: 思科交换机Catalyst 3750-E Series ISO(2015) 然后我们还需要一个TFTP服务器软件,网上也有很多,常用的有CISCO TFTP和3C

源码安装nginx以及平滑升级

作者:尹正杰 这个博客不方便上传软件包,我给大家把软件包放到百度云了: 链接:http://pan.baidu.com/s/1eS3bn4u 密码:04a1 欢迎加入:高级运维工程师之路 598432640 操作平台: 1.创建ngxin用户,(用于管理nginx服务,您也可以随意指定的哟~) useradd -s /sbin/nologin nginx 2.安装基础环境 yum -y install gcc pcre-devel openssl-devel zlib-devel 3.安装ngi

percona 5.6升级到5.7相关error及解决方法

今早,把开发环境的mysql升级到了5.7.15,5.6数据导入后,启动一切正常,检查.err日志,发现有如下异常: 2016-10-31T00:29:33.187073Z 0 [Warning] System table 'time_zone_leap_second' is expected to be transactional.2016-10-31T00:29:33.187093Z 0 [Warning] System table 'time_zone_name' is expected

升级Flash Builder 4.6中的Flash Player版本

测试有效 本人按此方法升级到了flash player 15 Adobe自发布Flash Builder 4.6后,就暂停了Flash Builder新版本的发布.但AIR和FlashPlayer版本仍然保持不断的更新.在下载新的AIRSDK并覆盖到Flash Builder 4.6 sdks目录下的相应版本目录后,发现当用到了升级后的FlashPlayer新增特性功能后仍然无法通过调试,解决的惯用方法就是在“附加的编译器参数”项中设置版本号(如:-swf-version=16,但这种设置是针对

15.6 升级 AlwaysOn 故障转移群集

15.6 升级 AlwaysOn 故障转移群集 15.6.1 先决条件 升级 FCI(故障转移群集实例)所需的先决条件与升级独立实例的要求大致相同. 不能将独立实例升级到 FCI.如果需要将 SQL Server 的独立实例升级至 FCI,必须通过以下步骤实现. (1)安装 FCI. (2)将独立实例的用户数据库数据库迁移至 FCI. 15.6.2 滚动升级 升级 FCI 必须遵从以下顺序. (1)先从被动节点开始运行升级操作.同时运行升级操作的被动节点数量不得超过节点数量的一半. (2)所有的

笔记本电脑升级Win10最靠谱的安装激活方法

笔记本电脑升级Win10最靠谱的安装激活方法 引言:先用激活后的WIN7SP1或WIN8.1升级WIN10专业版,升级好后WIN10就永久激活了--这是2015年微软公司首次提出的一年期"普惠"免费升级政策.事实上,激活服务器至今一直未关闭,官方称此项利好政策2017年12月31日终止执行.支持正版的话,花几百元到一千多元人民币直接从微软应用商店购买相应正版软件介质就完事了.作为win迷DIY们既喜欢捣鼓操作系统,又不愿错过微软的"普惠"免费升级政策,那就给大家分享