Angular 安全大师班(附免费电子书)
Angular 安全实用指南 – 将身份验证/授权(从头开始)添加到 Angular/Node 应用程序
讲师:Angular University
口袋资源独家Udemy付费课程,独家中英文字幕,配套资料齐全!
用不到1/10的价格,即可享受同样的高品质课程,且可以完全拥有,随时随地都可以任意观看和分享。
你将会学到的
- Github 存储库中的代码,每个部分都有可下载的 ZIP 文件
- 在 Web 安全基础知识方面打下坚实的基础
- 手动执行攻击,以便完全理解它们
- 了解并保护应用程序免受常见的安全攻击,例如字典攻击、跨站点请求伪造等。
- 深入了解 JWT,包括多种签名类型
- 从头开始设计和实现应用程序身份验证和授权
- 了解如何使用 JWT(和传统的服务器会话)向 Angular 应用程序添加身份验证
- 了解如何将 RBAC(基于角色的访问控制)授权添加到 Angular 应用程序
课程内容
10 个章节 • 74 个讲座 • 总时长 7 小时 50 分钟展开所有章节
介绍7 个讲座 • 26 分钟
- Angular 安全课程直升机视图预览02:03
- 重要的00:18
- Typescript Jumpstart 电子书03:27
- 安装 Git、Node、NPM 并选择 IDE04:17
- 安装课程代码 – 了解为什么使用 NPM 5 至关重要预览06:05
- 如何使用热重载在 TypeScript 中运行节点03:57
- 示例应用程序导览预览06:00
注册服务 – 初始客户端和服务器端实施4 个讲座 • 29 分钟
密码存储 – 散列和加盐7 个讲座 • 46 分钟
用户会话管理13 个讲座 • 1 小时 34 分钟
JSON Web 令牌简介7 个讲座 • 38 分钟
JWT 实践 – 使用 JSON Web 令牌的逐步身份验证6 个讲座 • 37 分钟
CSRF – 跨站请求伪造4 个讲座 • 38 分钟
使用 Auth0 的基于 JWT 的身份验证14 个讲座 • 1 小时 27 分钟
RBAC 基于角色的授权10 个讲座 • 1 小时 5 分钟
结论2 个讲座 • 10 分钟
要求
- 只是一些以前的 Angular 和 Typescript 知识
说明
该课程是一门Web 应用程序安全基础课程,其中应用程序将使用 Angular/Node 堆栈。
所有服务器代码都在 Typescript 中,但其中解释的安全概念适用于其他技术堆栈。
本课程 包括一本辅助电子书 – Typescript Jumpstart 电子书
我们将使用来自 Auth0 的几个MIT 许可的 Angular 和 Node 包(你可以在你的应用程序中使用),我们还将包含一个演示如何使用 Auth0 进行应用程序用户管理。
重要的是要意识到这不是 Auth0 特定的课程。Auth0 将是我们将使用的几个开源包的来源,并将对其进行快速演示,以展示 JWT 如何简化将身份验证委托给第三方系统,该系统可以在内部开发为出色地。
安全性 – 软件开发职业的基本步骤
安全性可能是软件开发人员在其软件开发职业生涯中应掌握的第一个高级主题。
安全知识很难获得,但它对于晋升到更高级的软件开发职位至关重要,例如应用程序架构师或类似职位。
学习 Web 安全基础知识,了解如何设计安全应用程序,以及了解如何识别和修复安全问题是高级开发人员必备的技能。
但问题是安全知识与大多数其他主题是正交的,通常需要数年时间才能学习。
好消息是,一旦掌握了安全知识,安全知识的保质期就比大多数软件开发知识要长得多。
你将在本课程中学习的大多数漏洞和修复在 10 年前很有用,并且(很可能)在 10 年后仍然有用 – Angular 和 Node 只是一个堆栈的示例,以使课程示例更多实际的。
安全性被视为很难掌握的东西 – 实际上并非如此!应用程序安全性比你想象的要容易得多,这取决于你如何学习它。
以有趣和实用的方式学习安全性的最佳方法是什么?
下面是我们要做的事情:我们将获取一个正在运行的应用程序的骨架,但它还没有安全性,我们将逐步保护应用程序。
使用来自 Auth0 的几个 MIT 包(你可以在任何项目中使用),我们将从头开始实现注册和登录功能,并且由于不能仅在客户端强制执行安全性,我们将在 Angular 中实现前端,在 Node 中实现后端。
由于我们保护应用程序,并且我们将在课程期间定期多次攻击应用程序,以证明漏洞是真实的!
通过这样做,我们将学习身份验证和授权的基础知识,熟悉字典攻击、CSRF 等常见漏洞,熟悉哈希、加盐、JWT、密码等常用加密工具存储建议等。
请不要被这些概念吓倒:本课程的重点不是我们将使用的每个加密工具的内部结构,而是从高层次上理解这些工具解决了哪些问题,何时解决使用每个以及为什么。
我们还将学习如何设计我们的安全应用程序,我们将学习在许多情况下应用程序设计是你最好的防御。
课程大纲
我们将从头开始:我们将看到进行用户管理和注册的正确方法:我们将学习如何将密码存储在数据库中,我们将以一种平易近人的方式介绍加密哈希。
一旦我们有了注册功能,我们将实现登录并了解对临时身份令牌的需求。我们的第一个实现将是有状态登录,其中令牌保存在服务器级别。
在这一点上,我们可以认为我们已经进行了身份验证,但我们决定为应用程序准备可扩展性,因此我们决定尝试基于JWT(JSON Web 令牌)的方法,因为我们知道这就是像 Firebase 和 Auth0 这样的服务利用。
我们将使用几个 Auth0 包快速将我们的登录重构为基于 JWT,并了解使用 JWT 的优点以及一些潜在的缺点。
然后,我们将看到如何使用第三方基于 JWT 的服务(如 Auth0 )进行身份验证,有效地从我们的代码库和数据库中删除所有身份验证逻辑,并将其委托给第三方服务。
请注意,这个 Auth0 特定部分只是课程的一小部分,其主要目标是展示如何在企业级别将身份验证委托给集中式服务,而不必引入应用程序之间的直接通信和集中式身份验证服务。
这意味着,如果你不能在你的公司使用 Auth0,你可以应用相同的设计原则并设计一个 JWT 解决方案,将身份验证委托给防火墙后面的集中式服务器。
然后,我们将介绍如何使用Angular Router在 Angular 中执行基于角色的 UI 级功能,以及根据用户角色显示或隐藏 UI 某些部分的自定义指令。我们将了解为什么路由器不能强制执行实际的安全性。
我们还将讨论服务器端授权,我们将实现一个通常需要的与安全相关的管理员级别功能:以用户身份登录服务,它允许管理员以任何用户身份登录,以调查问题报告。我们可以看到为什么我们需要保护这个功能!
在所有这些漏洞和安全修复程序结束后,我们将拥有一个安全良好的应用程序,并且我们将在此过程中以有趣和实用的方式学习大量与安全相关的概念!
你将在本课程中学到什么?
通过本课程,你将在 Web 应用程序安全基础知识方面打下坚实的基础,并且通过保护应用程序免受一系列安全攻击,你将获得应用这些概念的实践经验。你将通过实际执行许多攻击来做到这一点!
你将在 Angular/Node 应用程序的上下文中学习这些概念,但这些概念适用于任何其他技术堆栈。
你将了解 Angular 提供了哪些内置机制来防御安全问题,以及它不防御哪些漏洞以及原因。
你将熟悉密码存储、自定义身份验证服务设计和实现的最佳实践,你将了解加密哈希的基本知识,熟悉 JWT 和几个常用的开源 Auth0 包。
你将熟悉以下安全漏洞:字典攻击、身份令牌劫持技术、浏览器同源策略、如何将 cookie 与 JWT 结合以及为什么、跨站请求伪造或 CSRF、常见设计漏洞等。
你将了解用于保护企业和公共 Internet 应用程序的常见实用解决方案,例如如何使用 JWT 将身份验证委托给集中式服务,该服务可以是 Auth0 或遵循类似原则的内部开发服务。
你将了解如何实现 UI 级别的授权,并使用路由器保护等客户端结构来实现它,甚至构建你自己的与授权相关的 UI 指令。
你还将了解服务器端授权,以及如何实现只有管理员才能访问的常用后端服务 – 以用户身份登录。
在本课程结束时,你将能够做什么?
本课程可以帮助你将你的开发事业提升到更高的水平,其中有关 Web 应用程序安全性的知识是必不可少的,也是一个关键的差异化因素。
如果你是私人互联网企业主或考虑推出自己的平台,本课程将包含你在实践中所需的大部分内容,以稳健有效地保护你自己的在线平台。
通过本课程,你将掌握评估许多第三方安全相关解决方案所需的知识,并且你将知道在哪里寻找应用程序中的漏洞。
你将能够了解由第三方公司进行的安全审计产生的大多数应用程序级漏洞报告,并且你将能够了解和修复最常报告的问题。
此课程面向哪些人:
- 希望在 Angular 应用程序的特定上下文中深入学习 Web 应用程序安全性的 Angular 开发人员