策略服务器有什么意义? (Silverlight的)

时间:2009-03-22 22:28:25

标签: .net silverlight policy-server

我一直在搞乱Silverlight套接字,在抓了一下为什么我的连接被拒绝之后,我意识到我需要设置一个策略服务器。 Silverlight连接到套接字连接指定的主机上的策略服务器端口。策略服务器返回一个XML文件,指定允许访问该主机的访问权限。

我是否理解正确?这有什么意义?任何恶意用户都无法忽略策略文件并做任何他们想做的事情吗?

alt text http://www.netortech.com/Content/policy.jpg

2 个答案:

答案 0 :(得分:3)

Quote

  
    

用于跨域通信需要防范可用于利用Web应用程序的多种类型的安全漏洞。跨站点伪造是一类在允许跨域调用时成为威胁的漏洞。此漏洞涉及恶意Silverlight控件,在用户不知情的情况下将未经授权的命令传输到第三方服务。为了防止跨站点请求伪造,Silverlight默认情况下仅为图像和媒体以外的所有请求允许站点原点通信。例如,托管在http://contoso.com/mycontrol.aspx的Silverlight控件默认只能访问同一个域上的服务 - 例如http://contoso.com/service.svc,但不能访问http://fabrikam.com/service.svc的服务。这可以防止托管在http://contoso.com域上的恶意Silverlight控件在http://fabrikam.com域上托管的服务上调用未经授权的操作。

         

要启用Silverlight控件以访问其他域中的服务,该服务必须明确选择加入以允许跨域访问。通过选择加入,服务声明它可以安全地由Silverlight控件调用它公开的操作,而不会对服务存储的数据造成潜在的破坏性后果。

  

<小时/> 编辑:根据评论/问题...

我只是给出了我对情况的不完全理解,但这对我来说很有意义。

浏览器通常会限制它可以引导您的路由,因为它很难访问除提供http页面之外的任何主机。无论在讨论什么资源,都是如此。这些约束需要通过推断在浏览器/网页上下文中运行的任何其他东西来应用,包括Silverlight。所以这只是推断允许外来引用的现有机制。

我不确定你打算如何将“服务”与“套接字”区分开来。通常服务使用套接字;有一些进程(服务或其他)坐在主机上观看在端口上建立连接;一种类型的连接是套接字。

答案 1 :(得分:1)

我终于想出了这样做的一个很好的理由。

Silverlight应用程序可以非常快速地分发/执行。比如说,作为热门网站上的广告。在这种情况下,有人可以很容易地使用Silverlight应用程序在主机上运行DoS攻击,只需将其提供给广告提供商即可。但是,由于所有Silverlight应用程序首先检查主机的策略文件,因此它会限制此类攻击可以定位的主机和服务。