聯繫我們

課程簡介

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 Schema 驗證:嚴格 enforcing schema 的最佳實踐。
  • XML 數位簽章:實作簽章以確保不可否認性。
  • XML 加密:標準的 XML 內容加密方法。

5. Java 安全基礎

  • Java 安全架構:java.security套件與提供者架構。
  • 安全提供者:安裝與配置 Bouncy Castle 等提供者。
  • 存取控制:原則檔案、權限,以及安全管理器(舊版與現代版)。
  • KeyStore 管理:建立並管理用於憑證的 keystore 和 truststore。

6. 實務加密學

  • 加密演算法:對稱式(AES)、非對稱式(RSA, ECC)以及雜湊(SHA-256/512)演算法概覽。
  • 隨機數產生:探討使用 java.util.Randomjava.security.SecureRandom 的危險性差異。
  • 金鑰管理:金鑰產生、儲存與輪換策略。
  • Java Cryptography Architecture(JCA):使用 CipherMessageDigestMac 類別。
  • Java Cryptography Extension(JCE):了解原則檔案與無限制強度管轄範圍。

7. Java 安全服務

  • Java 中的 SSL/TLS:使用 SSLSocketFactoryHttpsURLConnection
  • 信任管理員:為私有 PKI 環境客製化信任驗證。
  • 認證器:使用 Authenticator.getDefault() 進行程式設計認證。
  • 憑證解析:以程式方式讀取和分析 X.509 憑證。

8. Java EE 安全

  • 宣告式安全:使用 web.xml 和註解進行基於角色的存取控制(RBAC)。
  • 程式設計安全:使用 HttpServletRequest.isUserInRole()getRemoteUser()
  • JJAS(Java Authentication and Authorization Service):配置 login.conf 並實作 LoginModules。
  • Servlet 安全:容器管理的安全約束與認證方法(FORM, BASIC, DIGEST)。

9. 常見程式錯誤與弱點

  • 非序列化反序列化不安全:ObjectInputStream 的風險以及繞過安全檢查。
  • 指令注入:緩和作業系統層級的執行弱點。
  • 路徑遍歷:清理檔案系統輸入以阻止目錄遍歷。
  • 反射濫用:java.lang.reflect 的風險以及繞過存取控制。
  • 硬編碼憑證:識別並移除來源程式碼中的機密資訊。
  • 加密實作錯誤:使用 ECB 模式、弱金鑰或靜態 IVs。

10. 知識來源

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

最低要求

無。

 21 小時

人數


每位參與者的報價

客戶評論 (4)

即將到來的課程

課程分類