2

我们有一个我们编写的 Silverlight 应用程序,它调用启用了 Silverlight 的数据服务。Silverlight 应用程序不需要登录,因为它需要向未经身份验证的公众提供数据。

我们有一些 schmoe 花时间检查我们的 Silverlight 应用程序,以一种或另一种方式找出它正在调用的服务,然后编写他自己的客户来窃取数据,以便他可以将其发布到他的网站上并假装它是他的。我们需要防止这种情况。

如何以某种方式限制我的数据服务以仅接受来自我的 silverlight 应用程序的请求?我尝试使用 clientaccesspolicy.xml 文件中的allow-from 域 uri设置来限制仅从 silverlight 应用程序所在的域(例如 mydomain.com)访问服务。但这绝对没有做任何事情,并且该服务仍在为来自域外的客户端提供请求。(我通过将我的 SL 应用程序放在我们控制的不同域上来测试这一点)。

限制数据服务以使只有我们的应用程序可以使用它的正确/最佳/最有效的方法是什么?谢谢!!!

我正在使用 SL 3 和 .NET 3.5。

4

2 回答 2

1

clientaccesspolicy.xml 告诉 Silverlight 应用程序它可以使用哪个 Web 服务。不阻止人们访问 Web 服务。

即使不需要,您也可以尝试使用身份验证登录。这可以防止“schmoes”访问您的网络服务。

还使用 Dotfuscator 来防止“schoes”反汇编您的 Silverlight 应用程序并获取登录信息。

于 2009-09-28T18:53:16.007 回答
1

Silverlight Web 服务安全性遵循您用于 ASP.NET 安全性的相同模式,尤其是向 AJAX 公开的服务。使用 ASP.NET 身份验证的最佳方式。

RIA 服务是处理此问题的更好方法。它建立在 ASP.NET 授权之上,但会自动在客户端和服务器端进行验证,以打击服务欺骗。它允许您通过向您的方法添加属性来处理客户端和服务器端授权,这些属性指示该方法需要授权访问,以及如果您需要特定的组或用户。

In addition to wire-side security and obfuscation, remember that clients can attach a debugger to Silverlight applications running in their browser. See this example from MSDN Magazine's Security IQ Test, November 2008.

于 2009-09-29T05:12:27.150 回答