昨天我收到了一個關於Silverlight跨域訪問策略機制的問題。我以前沒有用過它,所以我讀了一下。我認爲我知道如何配置它,但我不明白安全含義。Silverlight的clientaccesspolicy添加了哪些安全性?
如果我例如具有以下設置:
- http://somesite.com/html-hosting-silverlight-app.html
- http://somesite.com/silverlight-app.xap
- http://othersite.com/service.svc
- http://othersite.com/clientaccesspolicy.xml
在這種情況下othersite的CLIENTACCESS政策可以使Silverlight的-app在某個站點使用其他rsite.com/service.svc服務。根據MSDN這是它是安全服務的ensurance:
通過選擇接受,服務指出 它暴露的操作可以安全地 可以通過Silverlight控件, 沒有潛在的破壞性 調用對服務所存儲的數據造成的後果。
我不明白的是,這是如何提供任何真正的安全利益。該服務只是另一個soap服務,可以使用任何精心設計的調用參數從任何soap客戶端調用該服務。如果我針對http://othersite/service.svc啓動wcftestclient,我可以繞過clientaccesspolicy.xml並執行任何我想要的操作。
那麼,clientaccesspolicy.xml真的添加了什麼安全性?
如果我理解正確,它是用戶計算機上Silverlight沙箱的一部分。 Silverlight沙盒可防止惡意Silverlight應用程序使用用戶瀏覽器中存儲的認證Cookie在其他網站上執行操作。如果網站承諾(通過clientaccess.xml文件)允許任何Silverlight應用訪問該網站是安全的,並且可以訪問用戶的Cookie,則打開沙箱。是對的嗎? – 2011-05-14 10:51:35
@AndersAbel:我認爲這與cookies沒有任何關係。無論何時clientaccesspolicy.xml未找到或不符合請求,Silverlight都不會打開通信。 – 2011-05-15 05:02:10
@the_drow:如果不是關於cookies等,那麼在允許連接之前讓Silverlight沙箱檢查通信與服務器是否正常有什麼安全優勢? – 2011-05-15 10:19:22