聯繫我們

課程簡介

1. 資訊安全及安全編程

  • 基本安全原則:在 Java 應用程式背景下討論機密性、完整性及可用性(CIA)。
  • 安全軟體開發生命週期(SSDLC):從需求到部署整合安全考量。
  • 安全編程範式:縱深防禦、最小特權及安全預設設定。
  • 標準脆弱性分類:了解 CWE(常見弱點詞彙表)及 OWASP。

2. Web 應用程式安全

  • 深入探討 OWASP Top Ten:詳細分析注入、身分驗證破壞及敏感數據洩露。
  • 跨站腳本攻擊(XSS):Java/JSP 中的反射型、儲存型及 DOM 型 XSS 情境。
  • 跨站請求偽造(CSRF):攻擊機制及 Anti-CSRF 令牌的實作。
  • 會話管理:Cookie 安全、會話固定及逾時管理。
  • API 安全:保護 REST 及 SOAP 端點免受濫用。

3. Web 服務安全

  • Web 服務與傳統 Web 應用程式:攻擊面的差異。
  • 傳輸層安全:為 Java 客戶端及伺服器設定 SSL/TLS。
  • 訊息安全:在載荷層面確保完整性及機密性。
  • 身分驗證標準:OAuth 2.0、OpenID Connect 及 JWT(JSON Web Tokens)的實作。

4. XML 安全

  • XML 解析脆弱性:防止 XML 外部實體(XXE)攻擊。
  • XML 模式驗證:嚴格執行模式的正確做法。
  • XML 數位簽章:實作簽章以確保不可抵賴性。
  • XML 加密:加密 XML 內容的標準方法。

5. Java 安全基礎

  • Java 安全架構:java.security 套件及提供者架構。
  • 安全提供者:安裝及設定如 Bouncy Castle 等提供者。
  • 存取控制:策略檔案、權限及安全管理器(傳統與現代)。
  • 金鑰庫管理:為憑證建立及管理金鑰庫(keystores)及信任庫(truststores)。

6. 實務加密學

  • 加密演算法:對稱(AES)、非對稱(RSA、ECC)及雜湊(SHA-256/512)演算法概覽。
  • 隨機數產生:java.util.Randomjava.security.SecureRandom 的危險比較。
  • 金鑰管理:金鑰產生、儲存及輪換策略。
  • Java 加密架構(JCA):使用 CipherMessageDigestMac 類別。
  • Java 加密擴展(JCE):理解策略檔案及無限制強度管轄權。

7. Java 安全服務

  • Java 中的 SSL/TLS:使用 SSLSocketFactoryHttpsURLConnection
  • 信任管理器:針對私人 PKI 環境自訂信任驗證。
  • 驗證器:使用 Authenticator.getDefault() 進行程式式驗證。
  • 憑證解析:以程式方式讀取及分析 X.509 憑證。

8. Java EE 安全

  • 宣告式安全:使用 web.xml 及註解進行基於角色的存取控制(RBAC)。
  • 程式式安全:使用 HttpServletRequest.isUserInRole()getRemoteUser()
  • JAAS(Java 驗證及授權服務):設定 login.conf 並實作 LoginModule
  • Servlet 安全:容器管理的安全限制及驗證方法(FORM、BASIC、DIGEST)。

9. 常見編碼錯誤及脆弱性

  • 不安全反序列化:ObjectInputStream 的風險及繞過安全檢查。
  • 命令注入:緩解 OS 層級的執行脆弱性。
  • 路徑穿越:清理檔案系統輸入以防止目錄穿越。
  • 反射濫用:與 java.lang.reflect 相關的風險及繞過存取控制。
  • 硬編碼憑證:識別並從原始碼中移除機密。
  • 加密實作錯誤:使用 ECB 模式、弱金鑰或靜態 IV。

10. 知識來源

  • 靜態分析工具:使用 SonarQube、Checkmarx 及 Fortify 進行自動掃描。
  • 動態分析工具:Burp Suite 及 OWASP ZAP 概覽。
  • CVE 資料庫:如何追蹤及應對新的 Java 框架脆弱性。
  • 推薦閱讀:書籍、文件及安全編程檢查清單列表。

最低要求

無。

 21 小時

客戶評論 (4)

課程分類