认证授权与数据安全专题:JWT、SSO、权限系统、加密、脱敏与数据校验
约 1353 字大约 5 分钟
认证授权与数据安全专题关注后端系统里非常基础、但出错成本很高的一条链路:用户如何登录、身份如何传递、权限如何判断、敏感数据如何保护、输入数据如何校验。
安全不是某一个框架或某一个注解能兜住的事情。它需要从认证、授权、传输、存储、展示、输入校验和审计等多个环节一起设计。
适合谁看
- 正在学习登录鉴权、权限系统和数据安全的后端开发者。
- 准备认证授权、JWT、SSO、RBAC、数据脱敏相关面试题的同学。
- 项目中需要设计后台权限、用户体系、敏感数据展示或数据校验方案的工程师。
- 已经用过 Spring Security、Sa-Token、Shiro 等框架,但想补齐底层概念的读者。
学习重点
- 认证解决“你是谁”,授权解决“你能做什么”,两者不能混为一谈。
- Session、Token、JWT、OAuth2、SSO 适合的场景不同,不能只用“无状态”判断优劣。
- JWT 的优势和问题都很明显,重点在失效控制、续期、泄露风险和服务端治理。
- 权限系统通常要从用户、角色、权限、资源、组织、数据范围等维度建模。
- 数据安全既包括加密存储,也包括脱敏展示、输入校验、敏感词过滤和密码安全。
- 安全方案必须考虑落地成本、用户体验、可审计性和事故处置能力。
建议阅读顺序
- 认证授权基础概念详解:先区分认证、授权、Session、Token、OAuth2 等概念。
- JWT 基础概念详解 和 JWT 身份认证优缺点分析:理解 JWT 的工作方式、优势和局限。
- SSO 单点登录详解:理解统一认证中心、跨系统登录和登录态同步。
- 权限系统设计详解:把认证授权落到 RBAC 权限系统设计。
- 常见加密算法总结、数据脱敏方案总结、为什么前后端都要做数据校验?:补齐数据安全基础。
- 再根据业务场景阅读 敏感词过滤方案总结 和 为什么忘记密码时只能重置,不能告诉你原密码?。
核心文章
认证授权
- 认证授权基础概念详解:讲解 Authentication、Authorization、Session、Token、OAuth2 等核心知识。
- JWT 基础概念详解:讲解 JSON Web Token 的组成结构、签名算法、工作原理及登录鉴权应用。
- JWT 身份认证优缺点分析:分析 JWT 无法主动失效、Token 续期等问题及解决方案。
- SSO 单点登录详解:讲解统一认证中心、CAS 协议、跨域登录实现及登录态同步机制。
- 权限系统设计详解:基于 RBAC 讲解权限系统建模、访问控制和后台管理设计。
数据安全
- 常见加密算法总结:梳理 AES、RSA、MD5、SHA 等算法的原理与应用场景。
- 敏感词过滤方案总结:从暴力匹配到 Trie 树、AC 自动机,讲解敏感词过滤算法演进和工程实践。
- 数据脱敏方案总结:讲解手机号、身份证、银行卡等敏感数据脱敏规则和实现方法。
- 为什么前后端都要做数据校验?:解释参数校验、权限校验的重要性,以及如何防止绕过前端校验。
- 为什么忘记密码时只能重置,不能告诉你原密码?:解释密码哈希、加盐、Bcrypt 和密码传输安全。
高频问题
- 认证和授权有什么区别?
- Session 和 Token 有什么区别?
- JWT 由哪几部分组成?签名解决了什么问题?
- JWT 为什么无法天然主动失效?有哪些解决方案?
- OAuth2 和 JWT 是什么关系?
- SSO 单点登录的核心流程是什么?
- RBAC 权限模型如何设计?用户、角色、权限、资源之间是什么关系?
- 对称加密、非对称加密和哈希算法分别适合什么场景?
- 为什么密码不能明文存储?为什么忘记密码只能重置?
- 数据脱敏应该在存储层、服务层还是展示层做?
- 为什么后端必须做数据校验?
- 敏感词过滤有哪些常见实现方案?
相关专题
写在最后
如果内容对你有帮助的话,欢迎顺手给 JavaGuide 点一个免费的 Star 支持一下:GitHub | Gitee。
JavaGuide 已持续维护近七年,累计 6100+ 次提交,来自 620+ 位贡献者共同完善。你的 Star、反馈和 PR,都是这个项目继续更新的动力。
如果你正在准备后端/AI 应用开发面试,也可以了解一下我的知识星球,里面包括后端和 AI 实战项目、简历优化、一对一提问和高频考点资料,已经持续维护六年。
