- 學習 Web 服務
- Web 服務 - 首頁
- 什麼是 Web 服務?
- 為什麼要使用 Web 服務?
- Web 服務 - 特徵
- Web 服務 - 架構
- Web 服務 - 元件
- Web 服務 - 示例
- Web 服務 - 安全性
- Web 服務 - 標準
- Web 服務 - 總結
- Web 服務資源
- Web 服務 - 問題與解答
- Web 服務 - 快速指南
- Web 服務 - 有用資源
Web 服務 - 安全性
安全性對於 Web 服務至關重要。但是,XML-RPC 和 SOAP 規範都沒有明確的安全或身份驗證要求。
Web 服務存在三個特定的安全問題:
- 機密性
- 身份驗證
- 網路安全
機密性
如果客戶端向伺服器傳送 XML 請求,我們如何確保通訊保持機密?
答案在這裡:
- XML-RPC 和 SOAP 主要執行在 HTTP 之上。
- HTTP 支援安全套接字層 (SSL)。
- 可以透過 SSL 對通訊進行加密。
- SSL 是一項成熟的技術,並且已廣泛部署。
單個 Web 服務可能包含一系列應用程式。例如,一個大型服務可能會將三個其他應用程式的服務繫結在一起。在這種情況下,SSL 不夠;需要在服務路徑上的每個節點對訊息進行加密,並且每個節點都代表鏈中潛在的薄弱環節。目前,還沒有針對此問題的公認解決方案,但 W3C XML 加密標準是一個很有前景的解決方案。此標準為加密和解密整個 XML 文件或 XML 文件的部分內容提供了一個框架。您可以在 www.w3.org/Encryption 檢視。
身份驗證
如果客戶端連線到 Web 服務,我們如何識別使用者?使用者是否有權使用該服務?
可以考慮以下選項,但對於強大的身份驗證方案沒有明確的共識。
HTTP 包含對基本身份驗證和摘要身份驗證的內建支援,因此可以像目前保護 HTML 文件一樣保護服務。
SOAP 數字簽名 (SOAP-DSIG) 利用公鑰加密技術對 SOAP 訊息進行數字簽名。它使客戶端或伺服器能夠驗證另一方的身份。請在 www.w3.org/TR/SOAP-dsig 檢視。
結構化資訊標準促進組織 (OASIS) 正在開發安全斷言標記語言 (SAML)。
網路安全
目前還沒有簡單的答案來解決這個問題,並且它一直是爭論的焦點。目前,如果您真的打算過濾掉 SOAP 或 XML-RPC 訊息,一種可能性是過濾掉所有將內容型別設定為 text/xml 的 HTTP POST 請求。
另一種方法是過濾 SOAPAction HTTP 標頭屬性。防火牆供應商目前也在開發專門用於過濾 Web 服務流量的工具。