最后用了百度的云观测(功能强大, 包括监控网站的功能, 缺点是不能自动重启网站, 呵呵). 问题来了, 刚用了云观测没多久, 就收到了百度的邮件通知和短信通知, 告知网站存在strtus 漏洞, 危害就是 被黑客入侵,引起 数据库泄露网站被篡改等. 我用百度的测试URL来测试, 发现确实会导致网站发生异常, 甚至挂掉.
好吧, 既然度娘都提醒有漏洞, 那就修复吧(有BUG必修是我们程序猿的天性, 呵呵). 网站www.dmvcd.com 之前用的strtus版本是2.2.3, 度娘说在2013年6月底, apache发布的
Struts 2.3.15版本被曝出存在重要的安全漏洞, 需要升级到最新版本或是打补丁.
下面是网站strtus升级之前,用到的部分jar包:
asm-3.1.jar
commons-digester-1.8.jar
freemarker-2.3.16.jar
json-lib-2.1.jar
ognl-3.0.1.jar
strtus2-core-2.2.3.jar
strtus2-json-plugin-2.1.8.1.jar
strtus2-spring-plugin-2.2.3.jar
xwork-core-2.1.6.jar
直接升级到最新的2.3.24版本, 更新后的部分jar包如下:
asm-3.3.jar
commons-digester-2.0.jar
freemarker-2.3.22.jar
json-lib-2.3-jdk15.jar
ognl-3.0.6.jar
strtus2-core-2.3.24.jar
strtus2-json-plugin-2.3.24.jar
strtus2-spring-plugin-2.3.24.jar
xwork-core-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中, 增加了下面的配置:
再测试一下, 问题解决. 这里要提示一下: strtus官方推荐使用通配符的方式来配置, 而不是 action!methodName 的方式来调用.
[ strtus升级小结 ]:
1. strtus.xml 中版本的声明需要修改为:
2. 仅升级自己需要的jar包.
3. 开启动态DMI调用Action的方法, 在strtus.xml中 增加