2011-05-14 51 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

相关问题