Java 应用安全性必知必会--掘金小册课程推荐/优惠
版权声明
本站非掘金小册官网,与官方无任何关系。我们不提供课程下载或详细内容,仅作为课程分享和推荐平台。我们鼓励大家支持正版,尊重创作者的劳动成果,这样不仅能帮助创作者持续产出优质内容,也能让自己获得更好的学习体验。请通过官方渠道购买和学习课程,感谢您的理解与支持。
课程详情
课程介绍
作者介绍
天涯兰,世界 500 强企业技术总监,IT 畅销书作者,著有《系统架构设计》《分布式系统架构与开发》《DDD 工程实战》等多部书籍。
10 余年工作经验,在大型上市公司和互联网独角兽企业担任过架构师
和技术总监
,目前带领着百人团队开发医疗健康类智能化软硬件系统。在知识分享领域也有多年经历,主持过十余个面向研发人员的技术和管理类培训课程
,阿里云 MVP、腾讯云 TVP。
掘金小册《DDD 案例实战课》和《分布式服务面试精讲》作者。
小册介绍
作为一项基础设施类的技术体系,可以说任何一个业务系统或多或少都会有安全性
相关的需求。例如,日常开发过程中,最常见的就是对用户身份的认证和对该身份所需要访问资源的授权。我们可以设想一下,如果一个应用程序在认证和授权机制上存在漏洞,就会导致用户信息等敏感数据发生泄露,给用户和公司都造成巨大的损失,这样的系统肯定是不会有人使用的。
而在 Java 领域中,各类单体、微服务等 Web 类系统和非 Web 类系统是目前最主流的应用表现形式。在这些应用中,除了基础的用户认证和权限控制之外,还需要考虑的安全性功能有很多,包括但不限于用户信息管理、敏感信息加解密、跨站点请求伪造保护、跨域支持、全局安全方法以及跨服务的安全调用等。
在本小册中,我们将对上述 Java 应用开发过程中常见的各个核心的安全性功能
展开详细的分析和讨论,并引入 Spring Security
框架来尝试解决这些问题。
Spring Security 可以和 Spring Boot 等框架无缝集成,也是 Spring Cloud 等微服务开发框架的底层基础框架之一,功能完备且强大。借助于 Spring Security,我们既可以实现对单体应用的安全性控制,也可以构建完整的微服务安全解决方案。
这是一本实战驱动
的小册,我将基于如下所示的思维导图来组织相关内容:
因为安全性相关的概念比较复杂而专业,有些概念甚至略显晦涩难懂。因此,在介绍上述内容时,我会尽量采用图形化的方式为大家展示这些概念背后的细节,以及对应的技术解决方案。
这里截取小册中的几张示例图来进行展示。例如,在介绍 CSRF
保护时会基于系统交互过程给出底层的数据传输和验证原理,如下图所示:
再比如说,在讨论如何实现跨域访问
时,会结合 HTTP 协议的功能特性阐述预检(Preflight)操作的执行流程,如下图所示:
除了图文并茂的展现形式之外,整体来讲,本小册的“特点”主要包括以下三个方面:
- 将安全系统构建所需的各个核心功能和主流的安全性开发框架 Spring Security 紧密结合起来,
从概念到实战,由浅入深进行讲解
; - 对应用程序安全性所涉及的最核心的认证、权限、处理流程、扩展性等机制进行
底层原理的分析
; - 针对日常开发中的常见应用场景给出对应的
解决方案以及案例分析和实现
。
你会学到什么?
-
全面掌握 Java 领域中认证、授权、加密、CSRF 保护、CORS、会话安全控制、方法级安全访问、OAuth2、JWT 等核心安全性功能,构建自己对 Java 应用安全性设计的知识体系和解决方案。
-
掌握 Spring Security 框架的主流使用方法,并深入理解该框架中最核心的用户认证、访问授权、处理流程等方面的设计原理,能够从源码级别剖析框架的底层实现机制。
-
完整的案例设计以及即插即用的案例代码,可用于指导日常开发过程的常见业务场景。
适宜人群
-
Java 后端开发人员。这部分同学希望对应用程序的安全性功能有全面的学习和掌握,并尝试通过引入或者更好地使用 Spring Security 等主流的安全性框架来提高系统的安全性。本小册作为一套体系化的面向 Java 应用程序的安全性课程,原理和实战并重,能够给到这些同学
全面而完整的技术体系和实践技巧
。 -
对安全性实现技术有兴趣的开发人员。这部分同学希望能够通过一门完整的课程来学习安全性相关的技术体系。本小册就是一个很好的选择:针对安全领域通用的概念和方法都做了详细的介绍,并引入了 Spring Security 这款 Spring 家族主打的安全性开源框架。另外,本小册中所介绍的安全性功能基本涵盖了日常开发的基本需求,Spring Security 框架入门也比较简单,和 Spring 框架集成性很好,内部所包含的
设计理念和实现过程也大多具备通用性
。
课程目录
- 漏洞保护:什么是 CSRF?如何对跨站攻击进行防护?
- 认证缓存:如何基于缓存技术提升认证的性能?
- 综合认证:多因子认证案例分析
- 开篇词:开发 Java 应用程序,你应该如何防止出现安全性问题?
- 访问授权:如何确保对请求访问范围进行控制?
- 用户认证:对用户身份的常用认证方式有哪些?
- 加密解密:如何防止敏感数据产生泄露?
- 会话管理:如何有效管理用户请求的安全状态?
- 跨域处理:什么是 CORS?如何对跨域操作进行控制?
- 授权服务:如何构建 OAuth2 授权服务器并发放令牌?
- 开放协议:如何实现分布式环境下的访问授权?
- 方法安全:如何在非 Web 应用中嵌入自定义安全控制策略?
- 资源服务:如何在业务服务中嵌入 OAuth2 授权机制?
- 令牌机制:什么是 JWT?如何使用并扩展 JWT?
- 认证流程:如何设计一套定制化的用户认证机制?
- 权限模型:常见的权限模型有哪些?如何实现?
- 请求过滤:如何基于管道-过滤器架构扩展安全性?
- 基础场景:Web 应用安全控制案例分析
- 服务集成:微服务安全体系构建案例分析(下)
- 服务集成:微服务安全体系构建案例分析(上)
- 令牌定制:自定义令牌生成和管理案例分析(上)
- 令牌定制:自定义令牌生成和管理案例分析(下)
- 测试验证:如何对系统的安全性进行有效测试?
- 以终为始:Java 应用程序安全性总结和展望