Apache Struts 2
有用户建議将Apache Struts 2移動至Apache Struts。(2024年11月24日) 此移動可能有爭議或者需要管理員協助。提請移動者请在討論頁说明理由以便其它编辑者参与討論。請求若無討論可能不受理。(進行移动) |
此條目需要补充更多来源。 (2023年11月30日) |
Apache Struts 2是一个用于开发Java EE網路應用程式的開放原始碼網頁應用程式架構。它利用并延伸了Java Servlet API,鼓励开发者采用MVC架构。
開發者 | Apache软件基金会 |
---|---|
首次发布 | 2006年10月10日 |
当前版本 |
|
源代码库 | |
编程语言 | Java |
操作系统 | 跨平台 |
平台 | 跨平台(JVM) |
许可协议 | Apache许可证 2.0 |
网站 | struts |
缘起于Apache Struts的WebWork框架,旨在提供相对于Struts框架的增强和改进,同时保留与Struts框架类似的结构。2005年12月,WebWork宣布WebWork 2.2以Apache Struts 2的名义合并至Struts。2007年2月第一个全发布(full release)版本释出。[2]
开发目标
Struts1设计的第一目标就是使MVC模式应用于web程序设计。在过去10年,Struts在更好的web应用方面所做的工作是值得肯定的。在某些方面,Struts社区注意到这一框架的局限性,所以这个活跃的社区通过对MVC运行模式的重新理解并同时引入一些新的建筑学方面的设计理念后,新的Struts2框架结构更清晰,使用更灵活方便。
这一新的结构包含应用逻辑的横切面拦截器,基于注释的配置以减少和去除XML形式的配置文件,功能强大的表达式语言,支持可更改、可重用UI组件的基于微MVC的标签库。Struts2有两方面的技术优势,一是所有的Struts2应用程序都是基于client/server HTTP交换协议,The Java Servlet API揭示了Java Servlet只是Java API的一个很小子集,这样我们可以在业务逻辑部分使用功能强大的Java语言进行程序设计。
Struts 2提供了对MVC的一个清晰的实现,这一实现包含了很多参与对所以请求进行处理的关键组件,如:拦截器、OGNL表达式语言、堆栈。
漏洞处理手法
Struts2开发组常被指漏洞修复手法不妥,要么修复后仍有可利用,要么无法修复并长期闲置。
其中包括一个由标记为S2-003的漏洞报告引发了一连串的远程执行问题,官方多次修复仍没能完全解决,甚至是报告提交者多次提交其绕过方案警醒开发组注意。[3]
2013年7月发布了2.3.15.1发布版,但在修复事项中公开了一段远程执行漏洞的示例代码,被黑客圈内利用,导致了中国大陆大量使用Struts2的网站被入侵。[4]
参见
参考文献
- ^ Release 6.6.1. 2024年10月5日 [2024年11月17日].
- ^ About Apache Struts 2. [2014-04-11]. (原始内容存档于2014-01-14).
- ^ Struts2漏洞频出 祸根是Apache底层代码不严谨_中小企业_比特网. [2014-08-18]. (原始内容存档于2014-08-19).
- ^ struts2高危漏洞或引发互联网安全灾难-IT168 安全专区. [2014-08-18]. (原始内容存档于2014-08-19).