我想我不明白这个过程。
假设我创建了一个很棒的SL应用程序并将其托管在我的网页上。如果有人下载XAP,他可以在他的网页上托管它,因为它只是一个文件,我认为它会完美地工作,即使它被混淆了。
我认为有几种方法可以保护它:
在我的网站上使用授权 (ASP.NET auth)并传递身份验证令牌 从它到SL应用程序,至少他们 将不得不使用我的网站获取 以某种方式使用身份验证令牌(尽管如果 不是第二次这也可以在 一些看不见的方式,如webrequest或 一个人可以做的事情 做得到令牌&那会的 再次在其他领域工作 罚款)并使用授权此身份验证令牌的WCF服务操作。
使用一些WCF服务& 跨域限制 如果托管,XAP将无法正常工作 那样的。
看起来如果第二个是有效的100%受保护的解决方案,则无需在网站上进行复杂的身份验证并将令牌传递给Silverlight,只需SL身份验证就可以了。
我想听听您对这两种方法的看法,也许还有其他方法来帮助解决这种情况。
也许有一种方法可以保护XAP,如果它不是从某个特定域下载的话它根本不会工作?
答案 0 :(得分:1)
您可能需要阅读此内容:http://www.youpvp.com/blog/post/Protecting-your-Silverlight-application-from-a-hijacking.aspx
答案 1 :(得分:0)
为什么不做这样的事情,也许在Application_Startup
if (Application.Current.Host.Source.Host != "mydomain.com")
throw new ApplicationStolenException();
理论上,有人可以编辑xap文件来更改该字符串,但是你可以对其进行模糊处理以使其变得更难。
身份验证不起作用。你打算在Silverlight应用程序中使用该身份验证令牌做什么? Silverlight不管理会话,你如何阻止某人永久重用令牌?
唯一可靠的选择是让您的应用程序依赖于Web服务。依赖于我的意思是实际上在服务器上实现部分逻辑。否则,只需重新创建一个产生与您相同的响应的服务就很容易。
与所有与安全相关的问题一样,关键在于平衡风险和投资。