2011-05-14 19 views
1

昨天我收到了一個關於Silverlight跨域訪問策略機制的問題。我以前沒有用過它,所以我讀了一下。我認爲我知道如何配置它,但我不明白安全含義。Silverlight的clientaccesspolicy添加了哪些安全性?

如果我例如具有以下設置:

在這種情況下othersite的CLIENTACCESS政策可以使Silverlight的-app在某個站點使用其他rsite.com/service.svc服務。根據MSDN這是它是安全服務的ensurance:

通過選擇接受,服務指出 它暴露的操作可以安全地 可以通過Silverlight控件, 沒有潛在的破壞性 調用對服務所存儲的數據造成的後果。

我不明白的是,這是如何提供任何真正的安全利益。該服務只是另一個soap服務,可以使用任何精心設計的調用參數從任何soap客戶端調用該服務。如果我針對http://othersite/service.svc啓動wcftestclient,我可以繞過clientaccesspolicy.xml並執行任何我想要的操作。

那麼,clientaccesspolicy.xml真的添加了什麼安全性?

回答

2

這是爲了防止Cross Site Request Forgery,其中一個malicioius Silverlight應用程序可以代表用戶執行操作。擁有properly configured clientaccesspolicy.xml可確保請求來自可信的Silverlight應用程序。

就直接調用服務而言,修改服務器上資源的方法通常應通過身份驗證進行保護,以確保只有授權用戶才能調用它們。

+0

如果我理解正確,它是用戶計算機上Silverlight沙箱的一部分。 Silverlight沙盒可防止惡意Silverlight應用程序使用用戶瀏覽器中存儲的認證Cookie在其他網站上執行操作。如果網站承諾(通過clientaccess.xml文件)允許任何Silverlight應用訪問該網站是安全的,並且可以訪問用戶的Cookie,則打開沙箱。是對的嗎? – 2011-05-14 10:51:35

+0

@AndersAbel:我認爲這與cookies沒有任何關係。無論何時clientaccesspolicy.xml未找到或不符合請求,Silverlight都不會打開通信。 – 2011-05-15 05:02:10

+0

@the_drow:如果不是關於cookies等,那麼在允許連接之前讓Silverlight沙箱檢查通信與服務器是否正常有什麼安全優勢? – 2011-05-15 10:19:22

相關問題