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),并开始删除资源。
如果这是可能的,我该如何阻止这个安全漏洞?
如果不是,什么阻止用户这样做?