如何防止外部拷贝的Silverlight XAP&在别人的域名上使用

时间:2011-04-07 00:36:40

标签: silverlight security

我想我不明白这个过程。

假设我创建了一个很棒的SL应用程序并将其托管在我的网页上。如果有人下载XAP,他可以在他的网页上托管它,因为它只是一个文件,我认为它会完美地工作,即使它被混淆了。

我认为有几种方法可以保护它:

  1. 在我的网站上使用授权         (ASP.NET auth)并传递身份验证令牌         从它到SL应用程序,至少他们         将不得不使用我的网站获取         以某种方式使用身份验证令牌(尽管如果         不是第二次这也可以在         一些看不见的方式,如webrequest或         一个人可以做的事情         做得到令牌&那会的         再次在其他领域工作         罚款)并使用授权此身份验证令牌的WCF服务操作。

  2. 使用一些WCF服务&             跨域限制             如果托管,XAP将无法正常工作             那样的。

  3. 看起来如果第二个是有效的100%受保护的解决方案,则无需在网站上进行复杂的身份验证并将令牌传递给Silverlight,只需S​​L身份验证就可以了。

    我想听听您对这两种方法的看法,也许还有其他方法来帮助解决这种情况。

    也许有一种方法可以保护XAP,如果它不是从某个特定域下载的话它根本不会工作?

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

为什么不做这样的事情,也许在Application_Startup

if (Application.Current.Host.Source.Host != "mydomain.com")
    throw new ApplicationStolenException();

理论上,有人可以编辑xap文件来更改该字符串,但是你可以对其进行模糊处理以使其变得更难。

身份验证不起作用。你打算在Silverlight应用程序中使用该身份验证令牌做什么? Silverlight不管理会话,你如何阻止某人永久重用令牌?

唯一可靠的选择是让您的应用程序依赖于Web服务。依赖于我的意思是实际上在服务器上实现部分逻辑。否则,只需重新创建一个产生与您相同的响应的服务就很容易。

与所有与安全相关的问题一样,关键在于平衡风险和投资。