乐途乐途
主页
  • 计算机基础

    • TCP/IP
    • Linux
    • HTTP
  • 数据库

    • SQL
    • MySQL 5.7
  • 编程语言

    • C
    • C++
    • Java SE
    • Python2
    • Python3
  • 数据格式

    • JSON
    • XML
  • 认证与安全

    • JWT
  • 工具

    • Markdown
  • Git

    • GitFlow
  • Quartz

    • Quartz
  • Java

    • Maven 入门
    • Maven 进阶
    • MyBatis
    • Spring
    • Spring MVC
  • Java

    • Spring Boot
    • Spring Cloud
    • Spring Cloud Alibaba
    • Spring Security
    • Spring AI
    • Spring Batch
    • Kafka
    • Java 设计模式
  • 缓存

    • Redis
  • 搜索引擎

    • Elasticsearch
  • 分布式协调

    • ZooKeeper
联系
阿里云
主页
  • 计算机基础

    • TCP/IP
    • Linux
    • HTTP
  • 数据库

    • SQL
    • MySQL 5.7
  • 编程语言

    • C
    • C++
    • Java SE
    • Python2
    • Python3
  • 数据格式

    • JSON
    • XML
  • 认证与安全

    • JWT
  • 工具

    • Markdown
  • Git

    • GitFlow
  • Quartz

    • Quartz
  • Java

    • Maven 入门
    • Maven 进阶
    • MyBatis
    • Spring
    • Spring MVC
  • Java

    • Spring Boot
    • Spring Cloud
    • Spring Cloud Alibaba
    • Spring Security
    • Spring AI
    • Spring Batch
    • Kafka
    • Java 设计模式
  • 缓存

    • Redis
  • 搜索引擎

    • Elasticsearch
  • 分布式协调

    • ZooKeeper
联系
阿里云
  • 学习路径
  • 第1章 Spring Security 基础

    • 本章定位
    • Spring Security 是什么
    • DelegatingFilterProxy
    • 安全过滤器链
    • SecurityFilterChain
    • 过滤器执行顺序
  • 第2章 认证

    • 本章定位
    • Authentication
    • 认证流程
    • AuthenticationManager
    • ProviderManager
    • DaoAuthenticationProvider
    • UserDetails
    • UserDetailsService
    • PasswordEncoder
    • BCryptPasswordEncoder
    • DelegatingPasswordEncoder
    • 表单登录
    • SecurityContext
    • SecurityContextHolder
    • UsernamePasswordAuthenticationToken
  • 第3章 授权

    • 本章定位
    • 授权模型
    • GrantedAuthority
    • AccessDecisionManager
    • AccessDecisionVoter
    • URL 级别授权
    • 方法级别安全
    • @PreAuthorize
    • @PostAuthorize
    • @PreFilter
    • @PostFilter
    • @Secured
    • RoleHierarchy
  • 第4章 过滤器链

    • 本章定位
    • FilterChainProxy
    • SecurityContextHolderFilter
    • LogoutFilter
    • BasicAuthenticationFilter
    • CsrfFilter
    • CorsFilter
    • HeaderWriterFilter
    • AnonymousAuthenticationFilter
    • RequestCacheAwareFilter
    • ExceptionTranslationFilter
    • FilterSecurityInterceptor
  • 第5章 会话管理

    • 本章定位
    • 会话管理
    • SessionFixation
    • 会话并发控制
    • SessionCreationPolicy
    • RememberMe
  • 第6章 JWT

    • 本章定位
    • JWT
    • JwtDecoder
    • JWT 认证
    • JwtAuthenticationConverter
  • 第7章 OAuth2

    • 本章定位
    • OAuth2 基础
    • OAuth2 Client
    • OAuth2 Resource Server
    • 第三方登录配置
  • 第8章 攻击防护

    • 本章定位
    • CSRF 跨站请求伪造防护
    • CORS 跨域防护
    • Clickjacking 点击劫持防护
    • 安全响应头
    • Session Fixation 会话固定防护
  • 第9章 测试

    • 本章定位
    • 安全测试
    • @WithMockUser
    • 最佳实践

"小崔的安全测试报告上红了一片:CSRF 攻击可伪造转账、Clickjacking 能劫持按钮、CORS 配置错误导致数据泄露。白歌说:'Spring Security 默认已经防住了大部分攻击,但你得知道它们是怎么工作的。'这一章,你将系统掌握 Web 安全的五大常见攻击及防御机制。"

章节导读:常见攻击防护

本章定位

本章解决的核心问题:Web 应用面临的 CSRF、CORS、Clickjacking、Session Fixation 等常见攻击的原理是什么,以及 Spring Security 如何通过过滤器和安全响应头实现自动化防御。

学习路线图

学习顺序说明:先掌握 CSRF(跨站请求伪造)——Spring Security 的核心防护机制,通过 Token 校验保护非幂等请求 → 理解 CORS(跨域资源共享)——正确处理跨域预检请求和响应头 → 掌握 Clickjacking(点击劫持)——通过 X-Frame-Options 阻止页面被嵌入恶意 iframe → 理解 Session Fixation(会话固定攻击)——登录后更换 Session ID → 最后系统掌握安全响应头(Security Headers)——Content-Security-Policy、HSTS、XSS-Protection 等头的配置与作用。

文件关系说明

文件一句话角色
CSRF.md跨站请求伪造:攻击原理、Token 生成与校验机制、CsrfFilter 的工作流程、AJAX 场景的 Token 传递。
CORS.md跨域资源共享:预检请求(Preflight)、Access-Control-Allow-Origin、Spring Security 的 CorsFilter 配置。
Clickjacking.md点击劫持:X-Frame-Options(DENY/SAMEORIGIN)和 Content-Security-Policy frame-ancestors 防御机制。
Session_Fixation.md会话固定攻击:攻击者预设 Session ID,用户登录后劫持会话,Spring Security 的 SessionFixationProtectionStrategy 防护。
安全响应头.md安全响应头:X-Content-Type-Options、XSS-Protection、Strict-Transport-Security、Content-Security-Policy 的完整配置。

知识图谱

核心逻辑:Spring Security 的攻击防护是多层防御体系:请求层通过 CsrfFilter 校验 Token 防止 CSRF,通过 CorsFilter 控制跨域策略;页面层通过 X-Frame-Options 防止 Clickjacking,通过 Content-Security-Policy 限制脚本加载来源;会话层通过 SessionFixation 策略登录后更换 Session ID;传输层通过 HeaderWriterFilter 自动写入 HSTS、XSS-Protection 等安全响应头。这些防护大多默认启用,开发者只需理解原理并按需调整配置。

与上下章的衔接

上一章回顾:你掌握了 OAuth2 第三方登录和 JWT 无状态认证,现代应用的安全架构已经成型。但认证和授权只是安全的一部分,攻击防护同样关键。

下一章预告:攻击防护机制已经配置完毕,但安全规则是否正确生效?下一章「测试与最佳实践」将教你如何用 @AutoConfigureMockMvc 和 @WithMockUser 编写安全测试,以及生产环境的最佳实践配置。

下一页
CSRF 跨站请求伪造防护