0

我一直在搞乱 Silverlight 套接字,在摸索我的连接被拒绝的原因后,我意识到我需要设置一个策略服务器。Silverlight 连接到由套接字连接指定的主机上的策略服务器端口。策略服务器返回一个 XML 文件,指定允许对该主机的访问。

我是否正确理解这一点?这有什么意义?难道任何恶意用户都不能简单地忽略策略文件并为所欲为吗?

替代文字 http://www.netortech.com/Content/policy.jpg

4

2 回答 2

3

报价

用于跨域通信需要防范几种可用于利用 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。所以这只是推断允许外部引用的现有机制。

我不确定您打算如何区分“服务”和“套接字”。一般服务使用套接字;主机上有一些进程(服务或其他)正在监视端口上的连接;一种类型的连接是套接字。

于 2009-03-22T22:47:27.193 回答
1

我终于找到了这样做的一个很好的理由。

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

于 2009-03-23T16:17:56.607 回答