Contents
Angular 安全實用指南 – 向 Angular / Node 應用程式添加身份驗證/授權(從頭開始)
從這 8 小時的課程,你會學到
- Github repository 中的程式碼,每章節都有可下載的 ZIP 檔
- 在網路安全基礎知識方面打下堅實的基礎
- 自己手動執行攻擊,以便完全理解它們
- 了解並保護應用程式免受常見的安全攻擊,例如字典攻擊、跨站點請求偽造等。
- 深入理解JWT,包括多種簽名類型
- 從頭開始設計和實施應用程室身份驗證和授權
- 了解如何使用 JWT(和傳統伺服器 Sessions)向 Angular 應用程式添加身份驗證
- 了解如何向 Angular 應用程式添加 RBAC(基於角色的訪問控制)授權
要求
只是一些 Angular 和 Typescript 的先前知識
課程說明
該課程是 Web 應用程式安全基礎課程,其中應用程式將使用 Angular/Node 堆棧。
所有伺服器程式碼都在 Typescript 編輯,但所說的安全概念適用於其他技術堆棧。
本課程包括一本輔助電子書 – The Typescript Jumpstart 電子書
我們將使用來自 Auth0 的幾個 MIT 許可的 Angular 和 Node 套件(您可以在您的應用程式中使用),我們還將包括一個演示如何使用 Auth0 進行應用程式用戶管理。
重要的是要意識到這不是 Auth0 特定的課程。 Auth0 將是我們使用的幾個開源套件的來源,並將對其快速展示 JWT 如何將身份驗證委託給第三方系統變得簡單,這也可在內部開發。
安全 – 軟體開發生涯中的基本步驟
安全性可能是軟體開發人員在其軟體開發職業生涯中被期望掌握的第一個高級主題。
安全知識很難獲得,但它對於晉升到更高級的軟體開發職位至關重要,例如應用程式架構師或類似職位。
學習Web 安全基礎知識,了解如何設計安全應用程式,知道如何識別和修復安全問題是高級開發人員的必備技能。
但問題是安全知識與大多數其他主題通常沒什麼相關,需要數年時間才會去了解。
好消息是,一旦掌握了安全知識,它的保質期通常比大多數軟體開發知識要長得多。
您將在本課程中學習的大多數漏洞和修復在 10 年前很有用,並且(很可能)在 10 年後仍然有用 – Angular 和 Node 只是一個堆棧的示例,以使課程示例更加實用。
安全性被視為很難掌握的東西——實際上並非如此! 應用程式安全性比您想像的更容易上手,這取決於您學習它的方式。
以有趣和實用的方式學習安全的最佳方式是什麼?
以下是我們要做的:我們將採用尚無安全性的正在運行的應用程式的框架,並且我們將逐步保護該應用程式。
使用來自 Auth0 的幾個 MIT 包(你可以在任何專案中使用),我們將從頭開始實現註冊和登錄功能,並且因為不能僅在客戶端強制執行安全性,我們將在 Angular 中實現前端,在 Node.js 中實現後端。
當我們保護應用程式時,我們將在課程中多次定期攻擊應用程式,以證明漏洞是真實的!!
通過這樣做,我們將一路學習身份驗證和授權的基礎知識,我們將熟悉字典攻擊、CSRF 等常見漏洞,我們將熟悉常用的加密工具,如雜湊、Salting、JWT、密碼儲存建議等。
請不要被這些概念嚇倒:本課程的重點不是我們將使用的每個加密工具的內部結構,而是從更高層次理解這些工具解決了哪些問題,每個工具何時用來解決以及為什麼。
我們還將學習如何設計我們的安全應用程式,學習如何在許多情況下應用程式設計作最好的防禦。
課程大綱
我們將從頭開始:我們將看到進行用戶管理和註冊的正確方法:我們將學習如何將密碼儲存在資料庫中,我們將以一種平易近人的方式介紹加密雜湊( cryptographic hashes )。
一旦我們有了註冊功能,我們將實施登錄並了解對臨時身份令牌的需求。 我們的第一個實現將是有狀態登錄,其中令牌保存在伺服器級別。
在這一點上,我們可以認為我們已經進行了身份驗證,但我們決定為可擴展性準備我們的應用程式,因此我們決定嘗試基於 JWT (JSON Web Token)的方法,因為我們知道這是像 Firebase 和 Auth0 等所用的服務類型。
我們將使用幾個 Auth0 套件來快速將我們的登錄( Login )重構為基於 JWT,並了解使用 JWT 的優勢,以及一些潛在的劣勢。
然後,我們將了解如何使用基於 JWT 的第三方服務(如 Auth0)進行身份驗證,有效地從我們的程式碼庫( codebase )和資料庫中刪除所有身份驗證邏輯,並將其委託給第三方服務。
請注意,這個特定於 Auth0 的部分只是課程的一小部分,其主要目標是展示如何在企業級別將身份驗證委託給集中式服務,而不必在應用程式和集中式身份驗證之間引入直接通訊服務。
這意味著如果您不能在您的公司使用 Auth0,您可以應用相同的設計原則並設計一個 JWT 解決方案,將身份驗證委託給防火牆後面的中央伺服器。
然後,我們將介紹如何使用 Angular 路由器在 Angular 中執行基於角色的 UI 級功能,以及根據用戶角色顯示或隱藏 UI 某些部分的自定義指令。 我們將了解為什麼路由器不能執行實際的安全性。
我們還將討論伺服器端授權,我們將實現一個通常需要的與安全相關的管理級功能:以用戶身份登錄服務( The Login As User service),它允許管理員以任何用戶身份登錄,以調查問題報告。 我們將明白為什麼我們需要保護這個功能!
在所有這些漏洞和安全修復結束時,我們將擁有一個安全性良好的應用程式,並且我們將以有趣和實用的方式學習大量與安全相關的概念!
您將在本課程中學到什麼?
通過本課程,您將在 Web 應用程式安全基礎知識方面打下堅實的基礎,並且您將通過保護應用程式免受一系列安全攻擊來獲得所學概念應用的實踐經驗。 您將通過實際執行許多攻擊學習!
您將在 Angular/Node 應用程式的背景中學習這些概念,但這些概念適用於任何其他技術堆棧。
您將了解 Angular 提供了哪些內建機制來防禦安全問題,它不防禦哪些漏洞以及原因。
您將熟悉密碼儲存、自定義身份驗證服務設計和實現的最佳實踐,您將了解加密雜湊的基本知識,熟悉 JWT 和幾個常用的開源 Auth0 套件。
您將熟悉以下安全漏洞:字典攻擊、身份令牌劫持技術、瀏覽器同源策略、如何將 cookie 與 JWT 結合以及原因、跨站點請求偽造或 CSRF、常見設計漏洞等。
您將了解用於保護企業和公共互聯網應用程式的常見實用解決方案,例如如何使用 JWT 將身份驗證委託給集中式服務,該服務可以是 Auth0 或遵循類似原則的內部開發服務。
您將知道如何實現 UI 級授權並使用客戶端構造(如 Router guards)來實現它,甚至建構您自己的與授權相關的 UI 指令。
您還將了解伺服器端授權,以及如何實現僅管理員可以訪問的常用後端服務 – 以用戶身份登錄。
在本課程結束時,您將能夠做什麼?
本課程可以幫助您將您的開發職業更上一層樓,其中有關 Web 應用程式安全的知識是必要的,也是您勝出的關鍵差異條件。
如果您是私人網際網路企業主或考慮推出自己的平台,本課程將包含您在實踐中所需的大部分內容,以穩健有效的方式保護您自己的在線平台。
通過本課程,您將掌握評估許多第三方安全相關解決方案所必需的知識,並且您將知道在何處查找應用程式中的漏洞。
您將能夠理解大多數由第三方公司進行的安全審計得出的應用程式級漏洞報告,且讀懂這些報告。
目標受眾
希望在 Angular 應用程式的特定背景中深入學習 Web 應用程式安全性的 Angular 開發人員
講師簡介
Angular University 最暢銷的 Angular 課程 | 10 萬多名學生 | 16門課程
大家好,我是 Vasco Cavalheiro,是 Angular University 的線上講師。
多年來,我已經幫助超過 10 萬名開發人員學習了 Angular 框架及其周圍的技術生態系統。
在右上角的鏈接部分查看我的 Linkedin。
關於 Angular University:
Angular University 的目標是成為您學習和跟上整個 Angular 生態系統的地方。我們提供優質的視訊教程,螢幕操作風格。
無論您是 Angular 的初級、中級還是高級,我們都有幾門課程適合您。
更多關於我:
我是一名擁有多年經驗的軟體開發人員,非常擅長使用 Angular 建構用戶界面。多年來,我一直在各種企業項目中擔任前端開發人員/架構師。
我從事過大量專案,從幫助建構歐洲犯罪記錄資訊交換系統的單頁應用程式,到全新的電子銀行門戶,再到企業銀行門戶,等等。我一直是內部框架團隊的重要成員,該團隊為數十名開發人員的內部部門建構框架。
我也喜歡教授、寫作和談論技術。我期待成為您的 Angular 講師,
親切的問候,
Vasco
英文字幕:有
- 想要了解如何將英文字幕自動翻譯成中文? 請參考這篇 How-To
- 點選這個✨優惠連結✨ 課程特價 | Udemy 永久擁有課程 NT330 起( 在電腦瀏覽器登入,點選“優惠連結”後再回想要的課程介紹中點選“報名參加課程”即可取得 )
- Udemy 現在越來越多課程有中文字幕,請參考 Soft & Share 中文線上課程
- 手機上點選優惠連結看到的價格比電腦上看到的貴
- $代表當地貨幣, 如在台灣為 NT
- 點選”報名參加課程”有可能因瀏覽器 cookies 轉久一點或回報錯誤而無法連上,請稍等刷新或重新點選就會出現
報名參加課程
也許你會有興趣
- 網頁應用程式開發學習地圖
- ★英語學習地圖 – 練好英文是最大的學習槓桿
- 如何找工作學習地圖 – 找工作不要靠運氣!
- 從 Soft & Share 各種社團頻道挑選你喜歡的加入