您位於此處:
API (啟用 OAuth 設定):需要 Proof Key for Code Exchange (PKCE) 控制
OAuth 2.0 安全性擴充功能,此擴充功能使用動態建立的密碼編譯「程式碼驗證程式」來確保交換授權代碼以取得存取權杖的應用程式與原始要求代碼的應用程式相同。
控制名稱
連線的應用程式:API (啟用 OAuth 設定):需要 Proof Key for Code Exchange (PKCE)
建議組態
支援的授權流程需要 Proof Key for Code Exchange (PKCE) 擴充功能 - 已選取。
控制概觀
PKCE 是適用於 OAuth 2.0 的安全性擴充功能,其使用動態建立的加密編碼「驗證程式」來確保交換存取權杖授權代碼的應用程式與原始要求代碼的應用程式相同。
未設定安全性風險
若沒有 PKCE,公用用戶端 (例如行動應用程式或單一頁面應用程式) 容易受到「授權代碼截斷」,因為他們無法安全地儲存用戶端密碼,以在權杖交換期間驗證其身分。
威脅情況
攻擊者會透過自訂 URI 架構或瀏覽器重新導向攔截成功的授權代碼,並在合法應用程式成功之前立即將其交換為有效的存取權杖,進而有效劫持使用者的工作階段。
估計 CVSS 分數範圍
嚴重 (9.0–10.0)。
風險影響考量事項
成功攔截會導致應用程式範圍內的帳戶接管總數,可能允許敵方以入侵的使用者身分外洩敏感 PII 或執行未經授權的交易。
風險愈高時機
行動應用程式和單一頁面應用程式的風險高,其中程式碼會透過可能不安全的系統瀏覽器或共用裝置環境傳輸。
低度風險時機
對於可以安全地儲存和使用用戶端密碼來驗證權杖交換的「機密用戶端」(伺服器對伺服器整合) 而言,風險會被視為較低,但仍建議 PKCE 作為深度防禦。
業務與整合考量事項
強制執行 PKCE 需要開發人員更新其應用程式的 OAuth 接觸式邏輯,以產生和傳送 code_challenge 和 code_verifier 參數,這可能需要更新舊版行動程式庫。
建議的補救措施
前往 Salesforce 中的「連線的應用程式」設定,然後開啟「需要 Proof Key for Code Exchange (PKCE) 擴充功能」核取方塊。
安全性健康檢閱指南
Security Health Review 將 PKCE 識別為所有現代公開整合的必要基準,以結束「程式碼插入」漏洞,並確保行動裝置和 Web 使用者高度保證身分驗證。

