开发知识点-Apache Struts2框架

Apache Struts2

介绍

Apache Struts2是一个基于MVC(模型-视图-控制器)设计模式的Web应用程序框架,它是Apache旗下的一个开源项目,并且是Struts1的下一代产品。Struts2是在Struts1和WebWork的技术基础上合并出来的全新web框架,其核心是WebWork。使用Struts2框架可以简化web开发,并降低程序的耦合度。

Struts2由许多利益相关者创建和维护,包括Apache软件基金会、JBoss、IBM、Apple、OpenSymphony等公司。这个框架专为企业级Java Web应用程序而设计,广泛应用于电子商务网站、金融和保险领域等Web应用程序。

S2-001

ruby 复制代码
Struts2是一个基于Java的开源Web应用程序框架,用于开发MVC(Model-View-Controller)风格的Web应用程序。它是Apache Struts项目的后继版本,由Apache Software Foundation(ASF)进行开发和维护。

Struts2的主要特点和功能包括:

1. MVC架构:Struts2采用了经典的MVC设计模式,将应用程序分为模型、视图和控制器三个部分,以实现代码的解耦和模块化开发。这使得开发者可以更好地组织和管理应用程序的逻辑。
    
2. Web服务支持:Struts2提供了一套强大的机制来处理HTTP请求和响应,支持处理表单数据、参数传递、会话管理等常见的Web开发任务。它还集成了标准的Servlet、JSP和EL(Expression Language),使开发过程更加方便和高效。
    
3. 配置和注解:Struts2提供了灵活的配置方式,可以通过XML配置文件或者注解来定义控制器、视图和模型之间的关系。这使得开发者可以根据具体需求进行定制,并且可以轻松地修改和扩展应用程序的行为。
    
4. UI组件和标签库:Struts2内置了丰富的UI组件和标签库,如文本框、下拉列表、日期选择器等,可以快速构建用户友好的界面。这些组件可以轻松地与应用程序的模型绑定,实现表单数据的收集和验证。
    
5. 数据验证和转换:Struts2提供了强大的数据验证和类型转换机制,可以在服务器端对提交的数据进行验证和转换。它支持各种验证规则,如必填字段、正则表达式、范围限制等,并提供了多种内置的验证器。
    
6. 拦截器和插件:Struts2采用了拦截器的概念,提供了一种可扩展的方式来增强和定制应用程序的行为。它支持自定义拦截器和全局拦截器堆栈,使得开发者能够很容易地添加额外的功能,如日志记录、安全认证等。
    

Struts2是一个开源项目,采用Apache License 2.0开源许可证。这意味着任何人都可以自由获取、使用、修改和分发Struts2的源代码。开发者可以在Apache Struts2的官方网站上找到相关的文档、示例代码、技术支持和社区讨论等资源,以帮助他们学习和使用Struts2。同时,由于是开源项目,任何人都可以参与到Struts2的开发和贡献中。



Struts2基于OGNL的RCE

ognl.Ognl.getValue

import ognl.Ognl; 
import ognl.OgnlContext;

https://www.sohu.com/a/350469741_354899

S2

CVE-2023-22530

css 复制代码
Apache Struts2的OGNL表达式注入RCE漏洞 


该漏洞影响Apache Struts2 2.0.0 - 2.5.25版本,

攻击者可以通过向存在漏洞的Struts2应用发送带有恶意OGNL表达式的请求,

触发Struts2框架对OGNL表达式的解析和执行,从而执行任意代码。
相关推荐
沉静的小伙7 分钟前
Spring事务
java·数据库·spring
apihz15 分钟前
随机驾考题目(C 照科一 / 科四 2000+ 题)免费API调用教程
android·java·c语言·开发语言·网络协议·tcp/ip
AIGS00131 分钟前
企业AI落地:Agent OS 治理框架实践
java·大数据·人工智能·机器学习·人工智能ai大模型应用
-西门吹雪1 小时前
现代C++ 并发编程-学习指南
java·jvm·c++
lh17931 小时前
数据产业服务分类(53)——分类设计——数据能力集成
java·人工智能·分类
想你依然心痛2 小时前
自定义RTOS内核:从零实现上下文切换与任务调度——汇编、PendSV
java·开发语言·汇编·pendsv
geovindu2 小时前
java:Abstract Factory Pattern
java·开发语言·后端·设计模式·抽象工厂模式·创建型模式
geovindu2 小时前
java: Factory Method Pattern
java·开发语言·后端·设计模式·工厂方法模式·创建型模式
阿里云云原生2 小时前
乌镇大赛丨5 万奖金已备好!RocketMQ 等你一起打造全新 AI-Native 管控平台
apache·rocketmq
程序员小八7772 小时前
如何自研一个全局异常处理器
java