【发布时间】:2010-12-16 21:40:28
【问题描述】:
如何规避 Silverlight 跨域安全法?
这一点是我需要考虑的 跨域调用 - 浏览器或客户端 - 根据服务器上托管的客户端访问策略文件配置时允许。
有什么办法吗? 文章? 库?
【问题讨论】:
标签: c# silverlight-3.0 crossdomain.xml clientaccesspolicy.xml
如何规避 Silverlight 跨域安全法?
这一点是我需要考虑的 跨域调用 - 浏览器或客户端 - 根据服务器上托管的客户端访问策略文件配置时允许。
有什么办法吗? 文章? 库?
【问题讨论】:
标签: c# silverlight-3.0 crossdomain.xml clientaccesspolicy.xml
通常我认为您可以使用服务器上的 Web 服务来处理此问题。您应该使您传递给您的 Web 服务的内容非常具体。不要让 Web 服务仅采用通用 URL,否则您可能会使您的 Web 服务处于开放状态以被利用。
查看 silverlight 网站上关于跨域策略文件的以下主题:
http://silverlight.net/learn/videos/all/how-to-use-cross-domain-policy-files-with-silverlight/
【讨论】:
在您控制的服务器上使用某种代理 - 即您的最终用户连接到并且本身连接到网络的服务。
根据定义,任何其他答案几乎都是利用将在 Silverlight 的未来版本中修补的漏洞。
【讨论】:
其他发帖人已经回答了你的问题——或者更确切地说,你应该问的问题——所以我可能是在浪费我的呼吸。
但它可能会有所帮助 - 不仅可以帮助我们阅读您的问题,还可以帮助您自行解决问题 - 如果您尝试以更有用的方式重新构建它。与其问“我如何做 X”,其中 X 是无法通过设计完成的,您应该问:“除了 X 设计之外,还有哪些替代方案?”
在这种情况下,Silverlight 跨域限制是一项旨在无法逃避的安全功能(正如 rjmunro 指出的那样,即使有办法绕过它,您也不希望在此基础上构建产品它,因为它几乎肯定会在未来关闭)。
还有另一个原因要问自己可以扮演相同角色的替代方案:这个问题将您的注意力集中在跨域限制的安全目的上。如果您问自己如何“规避”跨域限制,您可能会说:“啊哈!我可以设置一个对所有人开放的简单网络代理!”不幸的是,这允许 任何人 规避跨域限制并在您的代理上下文中执行。
通过询问“除了执行不可能的跨域调用,还有哪些替代方案”,您(希望)提醒自己为什么存在跨域策略,并且(希望)考虑您实施的任何替代方案的安全隐患。
【讨论】: