1
有一個關於對WCF服務的調用的安全概念,我似乎無法理解。Silverlight和WCF RIA,保護服務調用。我錯過了什麼嗎?
我已經構建了一個示例Silverlight解決方案,並啓用了WCF RIA。
我有一個invoke操作(或任何的自動生成的CRUD的對於這個問題的),我已經與[RequiresAuthentication()]註釋:
[RequiresAuthentication()]
[Invoke]
public void DeleteResource(string id)
{
//...
}
接着,我改變的web.config啓用形式認證:
<system.web>
<httpModules>...</httpModules>
<compilation>...</compilation>
<authentication mode="Forms" />
</system.web>
現在只有經過身份驗證的用戶才能調用此方法。所以在客戶端我需要進行身份驗證:
FormsAuthentication auth = new FormsAuthentication();
auth.Login(textBoxUsername.Text, textBoxPassword.Text);
成功登錄後,可以調用該方法。
當提琴手通過這個過程尋找我可以看到兩件事情:
- 的Set-Cookie:.ASPXAUTH = F8FFB8B .....(從登錄工序)
- http://localhost:1107/.../DomainService.svc/binary/DeleteResource(當該方法被稱爲)
所以有害的用戶可以執行以下操作:
- 登錄到我的應用程序就像一個再gular用戶(他註冊並獲得憑據)。
- 在使用應用程序時打開Fiddler並複製剛纔提到的cookie和URL。
- 使用cookie構建對該URL的HTTP調用(例如,使用C#Webclient),並開始刪除資源。
如果這是可能的,我該如何阻止這個安全漏洞?
如果不是,什麼阻止用戶這樣做?