2009-06-27 86 views
3

我正在編寫一個Silverlight應用程序,它將通過一些WCF Web服務將數據讀取和寫入服務器端數據庫。確保WCF服務安全,只能通過Silverlight應用程序調用

什麼是保護這些Web服務的最佳方式?

我的目標是確保其他應用程序無法調用這些服務,並且可能會將請求添加到數據庫中。只有Silverlight應用程序需要能夠訪問它們。

回答

4

一般來說,你不能假設任何有關客戶端。如果您嘗試讓非Silverlight應用程序無法訪問您的網站,惡意客戶可以輕鬆裝扮成Silverlight應用程序,然後又回到原點。

這就是說,這不是保護服務器的有效方法。爲了保護你的服務器,假設任何和所有的客戶端都會攻擊你的站點,並從那裏開始。

編輯:

讓我修改的是說,如果你想進入相互認證的世界裏,你可以設置一個PKI來管理證書,發行用戶證書的所有用戶,然後你知道你的用戶是誰。儘管如此,其中一個可能是惡意的(並且很有天賦),並將證書注入另一個客戶端。

8

唐是絕對正確的,有沒有萬無一失的方式確保客戶端是一個Silverlight應用程序

但是,我認爲您需要了解以下方面的更多信息:我可以確保只有我信任的人才能連接到服務。 答案在這裏(基本上)是肯定的,或者至少我們有標準化的方法來做到這一點。

你通常會要考慮幾個不同的方法:

  • 傳輸層安全性。有人篡改了流量嗎?我們爲此使用SSL。
  • 認證。我在跟一個我信任的人說話嗎?在這裏,我們通常會使用其中一種身份驗證機制(比如Forms Auth)。您可以使用表單身份驗證來保護Silverlight(實際上是Silverlight所在的頁面)和WCF服務。令人困惑的是,SSL可以用於身份驗證(儘管很少是因爲這是一個痛苦的脖子)。
+0

Don說了些什麼非常有見地的評論。絕對是upvote。 ;) – 2009-06-27 18:44:23

相關問題