0.前言
该文章仅作为笔记使用,把之前学的那么多东西进行了简单的整合
1.完整请求流程
浏览器 / 前端
│ HTTP 请求
▼
Tomcat / Jetty(HTTP 服务器、Servlet 容器)
│
Filter(过滤器:登录、跨域、日志等)
│
Spring MVC 的 DispatcherServlet(统一入口)
│ 根据 URL、HTTP 方法寻找 Controller
▼
Controller(接收参数、返回结果)
│
Service(业务逻辑)
│
Mapper / Repository(访问数据库)
│
MySQL / PostgreSQL / Redis / Elasticsearch
2.对应漏洞
| 浏览器前端 | 页面展示、用户交互 | XSS、CSRF、DOM污染、开放重定向、点击劫持 |
| Tomcat | 接收HTTP、Servlet容器 | PUT不安全配置、Ghostcat、Manager弱口令、组件版本漏洞 |
| Spring MVC | 请求路由、参数绑定 | Spring4Shell、数据绑定问题、路径处理问题 |
| Filter / Security | 身份认证和访问控制 | 认证绕过、权限规则遗漏、JWT使用错误、CORS配置错误 |
| Controller | 接收参数、组织接口 | 越权、参数校验缺失、文件上传、路径穿越、开放重定向 |
| Service | 执行业务规则 | 业务逻辑漏洞、竞态条件、状态绕过、金额和库存问题 |
| Mapper | 拼接和执行SQL | SQL注入、越权查询、过量数据返回 |
| 序列化层 | JSON与对象转换 | Jackson不安全反序列化、类型混淆、敏感字段暴露 |
| 外部访问 | 调用URL或系统命令 | SSRF、命令注入、XXE、任意文件读写 |
| 运维配置 | 部署、管理、监控 | Actuator暴露、默认口令、密钥泄露、错误信息泄露 |
Spring Boot负责组装和自动配置。
Tomcat负责接收和发送 HTTP 数据。
Spring MVC负责把请求分配给 Controller。
Jackson负责 JSON 与 Java对象互转。
Controller负责接口层。
Service负责业务逻辑。
Mapper/Repository负责数据库访问。
Maven/Gradle负责构建项目。
JDK编译器负责把 .java 编译成 .class。
JVM负责运行 .class。
InputStream/OutputStream是底层数据读写方式。
3.Spring Boot项目中的常用组件
常见组合可以这样理解:
| Spring Core | 对象管理、依赖注入 |
| Spring Boot | 自动配置、启动和整合 |
| Spring MVC | HTTP接口、请求路由、参数转换 |
| Tomcat / Jetty | 接收网络请求、运行 Servlet |
| Jackson | Java对象与 JSON互转 |
| Hibernate Validator | 参数校验 |
| Spring Security | 登录、认证、权限控制 |
| MyBatis / MyBatis-Plus | 编写和执行 SQL |
| Spring Data JPA / Hibernate | ORM数据库访问 |
| JDBC | Java访问关系型数据库的基础接口 |
| HikariCP | 数据库连接池 |
| Spring Transaction | 数据库事务 |
| Redis客户端 | 访问 Redis |
| Spring Cache | 缓存抽象 |
| Spring AOP | 日志、事务等横切逻辑 |
| Actuator | 健康检查、监控信息 |
| Logback / SLF4J | 日志 |
| Maven / Gradle | 依赖、编译、测试、打包 |
| JUnit / Mockito | 单元测试和模拟依赖 |
网硕互联帮助中心






评论前必须登录!
注册