开发知识点-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


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、JSPEL(Expression Language),使开发过程更加方便和高效。
    
3. 配置和注解:Struts2提供了灵活的配置方式,可以通过XML配置文件或者注解来定义控制器、视图和模型之间的关系。这使得开发者可以根据具体需求进行定制,并且可以轻松地修改和扩展应用程序的行为。
    
4. UI组件和标签库:Struts2内置了丰富的UI组件和标签库,如文本框、下拉列表、日期选择器等,可以快速构建用户友好的界面。这些组件可以轻松地与应用程序的模型绑定,实现表单数据的收集和验证。
    
5. 数据验证和转换:Struts2提供了强大的数据验证和类型转换机制,可以在服务器端对提交的数据进行验证和转换。它支持各种验证规则,如必填字段、正则表达式、范围限制等,并提供了多种内置的验证器。
    
6. 拦截器和插件:Struts2采用了拦截器的概念,提供了一种可扩展的方式来增强和定制应用程序的行为。它支持自定义拦截器和全局拦截器堆栈,使得开发者能够很容易地添加额外的功能,如日志记录、安全认证等。
    

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



Struts2基于OGNLRCE

ognl.Ognl.getValue

import ognl.Ognl; 
import ognl.OgnlContext;

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

S2

CVE-2023-22530

Apache Struts2的OGNL表达式注入RCE漏洞 


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

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

触发Struts2框架对OGNL表达式的解析和执行,从而执行任意代码。



相关推荐

  1. Vue框架知识表格总结

    2024-03-10 17:56:03       37 阅读
  2. Web框架开发-BBS项目预备知识

    2024-03-10 17:56:03       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-10 17:56:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-10 17:56:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-10 17:56:03       82 阅读
  4. Python语言-面向对象

    2024-03-10 17:56:03       91 阅读

热门阅读

  1. uniapp中使用LocalStorage实现本地存储缓存数据

    2024-03-10 17:56:03       45 阅读
  2. PokéLLMon 源码解析(四)

    2024-03-10 17:56:03       33 阅读
  3. 在ubuntu16上用dkpg安装vscode 出现错误

    2024-03-10 17:56:03       39 阅读
  4. Vue 导出前端数据报表为xlsx文件

    2024-03-10 17:56:03       45 阅读
  5. 在 build.gradle.kts 添加 阿里云仓库

    2024-03-10 17:56:03       47 阅读
  6. 青创智通:工业互联网(IOT)的发展趋势

    2024-03-10 17:56:03       42 阅读