北屋教程网

专注编程知识分享,从入门到精通的编程学习平台

开发时,要选择Spring mvc ,还是选择Struts2

  • spring mvc的入口是servlet,而struts2是filter,这样就导致了二者的机制不同。

  • spring mvc是基于方法的设计,sturts2是基于类设计的

springmvc将url和controller方法映射。映射成功后springmvc生成一个Handler对象,对象中只包括了一个method。方法执行结束,形参数据销毁。springmvc的controller开发类似service开发。strts2每次请求都会实例一个action,每个action都会被注入属性。spring mvc是方法级别的拦截,拦截到方法后根据参数上的注解,把request数据注入进去,在spring mvc中,一个方法对应一个request上下文。而struts2框架是类级别的拦截,每次来了请求就创建一个Action,然后调用setter getter方法把request中的数据注入;struts2实际上是通过setter getter方法与request打交道的;struts2中,一个Action对象对应一个request上下文。

Struts2 远程代码执行漏洞 安全狗已及时修复

近日,在Struts 2上发现了一个严重的远程代码执行漏洞(CVE-2016-3081)。在用户开启动态方法调用的情况下,会被攻击者实现远程代码执行攻击。

2016年4月21日Struts2官方发布了两个CVE,其中就有CVE-2016-3081,且官方评级为高。据悉,国内开启这个功能的网站不在少数,因此这个“Possible Remote Code Execution”漏洞的被打的可能性很高。

Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与 ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。

警告!Struts2漏洞于昨日再次爆发

2016年4月26日Struts2官方发布了Apache Struts 2任意代码执行漏洞(CVE-2016-3081, S02-32),该漏洞主要原因为在开启动态方法调用(DMI)的情况下,黑客可以利用漏洞直接执行任意代码,这一漏洞影响的软件版本为2.3.20-2.3.28,不过2.3.20.2、2.3.24.2两个版本除外,建议尽快升级到相应的最新版本,并关闭DMI。

这是自2012年Struts2命令执行漏洞大规模爆发之后,该服务时隔四年再次爆发大规模漏洞。

关于Apache Struts2(S2-052)远程代码执行漏洞的预警通报

接中心技术支持企业绿盟通报,2017年9月5日,Apache Struts发布最新的安全公告,Apache Struts 2.5.x的REST插件存在远程代码执行的高危漏洞,漏洞编号为CVE-2017-9805(S2-052)。漏洞的成因是由于使用XStreamHandler反序列化XStream实例的时候没有任何类型过滤导致远程代码执行。

相关链接如下:

https://cwiki.apache.org/confluence/display/WW/S2-052

servlet和dom4j实现模拟struts1框架(二)

今天接着昨天的内容:

目标:使用反射知识取到配置在xml文件中的类

回顾昨天的内容:

为了不配置多个servlet,而采用一个ActionServlet来处理很多个请求,但是

  • 单一的Servlet中存在大量的if….else if的判断,不利于开发维护,也不满足“分”的思想

  • 如何解决?

解决方案:

MVC之Struts2框架--你并不了解的高级应用

《“爱读书”--给你讲技术》,我来看书,你来进步,让我们开始吧!

本书简介

书名为《轻量级JavaEE企业应用实战》,是本人在学习JavaEE框架的时候阅读的第一本书,本书对于框架及相关基础知识讲述的比较详细和浅显,适合初学者和需要全面了解JavaEE知识的人群。

本文内容为本书第四章


Struts2类型转换

Struts2S2-062远程代码执行漏洞(CVE-2021-31805)


Struts2 应用详解

一、数据校验

由于 Web 应用是基于请求/响应架构的应用,所以不管哪个 MVC Web 框架,都需要在

学习笔记之Struts2—工作原理图

本文以Struts2的官方工作原理图作为主线讲解(参考部分书籍与视频)

1.初始概念

struts2是web.xml进行配置的一个过滤器,当web项目启动的时候,这个过滤器就会生效。

2.web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
id="WebApp_ID" version="3.1">
  <display-name>zzh</display-name>

  <filter>
  	<filter-name>struts2</filter-name>
  	<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
  	<filter-name>struts2</filter-name>
	<url-pattern>/*</url-pattern>
  </filter-mapping>
  
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

Struts2漏洞利用及总结

  1. 远程代码执行漏洞

漏洞检测或扫描方法:使用Nmap和Struts2-Scan脚本进行扫描;使用Metasploit的

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言

    蜀ICP备2024111239号-42