如何保護JavaScript客戶端可以使用的WCF服務?任何特定的安全模型?當客戶端可以使用Javascript時客戶端WCF服務的安全性客戶端
我的理解是WCF支持通過使用傳輸和消息安全的有線數據加密。但是WCF仍然不安全,因爲任何人都可以使用該服務(身份驗證缺失)。只有數據移動「來回」在通道上加密。這是不夠的。因此,我們引入了Mutual Authentication並選擇了Certificate作爲cridentials。客戶需要做的事情是:除了所有的SOAP請求之外,他還應該發送一個有效的證書(客戶端代碼包含public和PRIVATE KEY,並由WCF管理員發佈)由我的服務器信任的CA頒發。
我們使用basicHttpBinding是因爲我們的客戶端可以是Javascript/Ipad/.Net/DBL客戶端。我們可以使用.Net/SOAPUI/JAVA客戶端來使用這些服務。所以我們對這種方法很滿意。
但今天在分析中,我們發現JavaScript客戶端無法使用我們的服務,因爲它不支持相互身份驗證(如果我錯了,請糾正我)。即使它支持相互身份驗證並向服務器發佈有效證書,我們也不能讓所有客戶端(Web瀏覽器)提供客戶端證書,因爲它還包含公共密鑰和私有密鑰(請注意私有密鑰!)以及這是我的服務器盲目信任的。
現在我有點困惑。有人可以建議一些JavaScript支持的安全模型,而不會有任何安全隱患。像RESTful WCF一樣。
據我所知,JavaScript不支持Message Security,它只支持傳輸安全。我不在乎數據如何通過電線加密。我關心的是客戶端如何通過我的WCF服務進行身份驗證。
非常感謝
你可以嘗試使用HMAC算法進行身份驗證,許多服務提供商如amazon等使用該算法... – Rajesh 2012-07-26 09:52:49