Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何防止silverlight XAP进行外部复制&;在别人的域名上使用_Silverlight_Security - Fatal编程技术网

如何防止silverlight XAP进行外部复制&;在别人的域名上使用

如何防止silverlight XAP进行外部复制&;在别人的域名上使用,silverlight,security,Silverlight,Security,我想我不太清楚这个过程 比如说,我创建了一个很棒的SL应用程序,并将其托管在我的网页上。如果有人下载th XAP,他可以在他的网页上托管它,因为它只是一个文件,我认为它会工作得很好,即使它被混淆了 我认为有两种方法可以保护它: 在我的网站上使用授权 (ASP.NET身份验证)并传递身份验证令牌 从it到SL应用程序,这样他们至少 将不得不使用我的网站获得 以某种方式验证令牌(尽管 不是第二个,这也可以在 一些看不见的方式,如webrequest或 做任何人想做的事情 要获得th令牌,请执行以下操

我想我不太清楚这个过程

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

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

  • 在我的网站上使用授权 (ASP.NET身份验证)并传递身份验证令牌 从it到SL应用程序,这样他们至少 将不得不使用我的网站获得 以某种方式验证令牌(尽管 不是第二个,这也可以在 一些看不见的方式,如webrequest或 做任何人想做的事情 要获得th令牌,请执行以下操作 再次工作在其他领域刚刚 很好)并使用WCF服务操作对该身份验证令牌进行身份验证

  • 使用一些WCF服务& 要进行的跨域限制 当然,如果托管,XAP将无法正常工作 像那样

  • 看起来,若第二个是有效的100%保护解决方案,那个么就不需要在网站上进行复杂的身份验证,也不需要将令牌传递给Silverlight,只需SL身份验证就可以了

    我想听听你对这两种方法的想法,也许还有其他一些方法可以帮助解决这个问题


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

    为什么不这样做呢,也许是在
    应用程序启动中

    if (Application.Current.Host.Source.Host != "mydomain.com")
        throw new ApplicationStolenException();
    
    理论上,有人可以编辑xap文件来更改该字符串,但您可以对其进行模糊处理,使其更加困难

    身份验证的事情是行不通的。您将如何处理Silverlight应用程序中的身份验证令牌?Silverlight不管理会话,您如何防止某人永远重复使用令牌

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


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

    为什么不这样做呢,也许是在
    应用程序启动中

    if (Application.Current.Host.Source.Host != "mydomain.com")
        throw new ApplicationStolenException();
    
    理论上,有人可以编辑xap文件来更改该字符串,但您可以对其进行模糊处理,使其更加困难

    身份验证的事情是行不通的。您将如何处理Silverlight应用程序中的身份验证令牌?Silverlight不管理会话,您如何防止某人永远重复使用令牌

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


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

    您可能需要阅读以下内容:

    您可能需要阅读以下内容:

    是的。。如果可以确定地对字符串进行模糊处理,那就太容易了。我认为如果我们考虑一个隐藏任何严肃技能的场景,这种保护就不值得了。对我来说,这似乎是一个像样的保护(如果它被混淆了)。编辑了更多的信息。是的ofc,对不起,我的意思是一件事,写了另一件事,不同的方法只是跨域文件,在第二种方法中,auth并不是真的需要,因为服务不应该在我的网站以外的下载位置工作,虽然第一种方法不使用跨域策略,但DLL可以使用reflector进行反编译,它们可以删除这行代码。有没有真正好的方法来防止这种情况?也许加载dll运行时(我需要这方面的例子)?是的,嗯。。如果可以确定地对字符串进行模糊处理,那就太容易了。我认为如果我们考虑一个隐藏任何严肃技能的场景,这种保护就不值得了。对我来说,这似乎是一个像样的保护(如果它被混淆了)。编辑了更多的信息。是的ofc,对不起,我的意思是一件事,写了另一件事,不同的方法只是跨域文件,在第二种方法中,auth并不是真的需要,因为服务不应该在我的网站以外的下载位置工作,虽然第一种方法不使用跨域策略,但DLL可以使用reflector进行反编译,它们可以删除这行代码。有没有真正好的方法来防止这种情况?也许加载dll运行时(我需要这方面的示例)?