flex应用程序绑定到url

时间:2011-07-09 11:48:31

标签: flex

Flex应用程序的问题是用户可以下载并在本地计算机上运行它,或者可能在另一个站点上托管它。是否可以将Flex应用程序锁定到域名以防止此类行为?

3 个答案:

答案 0 :(得分:1)

您必须自己编写代码,但是如果域不是您的域,您可以访问应用程序代码的URL变量并禁用该应用程序。

我不会称这是无与伦比的措施,但我认为没有。

我不确定为什么这个'问题'是Flex应用程序独有的。

答案 1 :(得分:1)

当然,您将在应用程序初始化区域执行以下操作:

var domainList : String = 'mysite.com,anothersite.com';
var domainCheck : String = this.url.split('/')[2];
var foundValidDomain : Boolean = false;
for each ( var domainChecking : String in domainList.split(',')){
    if( domainCheck.toUpperCase().indexOf(domainChecking.toUpperCase()) >= 0 ){
        mx.controls.Alert.show( 'check success: "' + domainCheck + '" against: "' + domainChecking ); 
        foundValidDomain = true;
        break;
    }else{                          
        mx.controls.Alert.show( 'check failed: "' + domainCheck + '" against: "' + domainChecking );
    }
}
if( !foundValidDomain ){
    // oh noes! mad hax!
    this.visible = false; // or however you want to lock it down
    return;
}

有意义吗? :)

现在,如果您想要将其锁定更多,您可以将应用程序发布到具有密钥字符串的服务器,并让服务器发回一些加密的时间敏感指令(将日期/时间发送到服务器并返回等) )。这将增加另一层麻烦,也必须实现服务器端。对于大多数应用来说,这可能有点过头了。

答案 2 :(得分:0)

请查看此链接http://www.richardlord.net/blog/protecting-a-swf

基本上,您可以通过按照您所说的方式锁定域来解决问题,并且您还可以使用商业解决方案加密您的代码 - 链接中对此进行了讨论。我认为重点是如果您在外部发布Flex代码,您希望人们运行它。