Flex应用程序的问题是用户可以下载并在本地计算机上运行它,或者可能在另一个站点上托管它。是否可以将Flex应用程序锁定到域名以防止此类行为?
答案 0 :(得分:1)
答案 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代码,您希望人们运行它。