问候,
这是关于Flash安全/沙箱问题。我想知道加载的Flash .swf对象是否有办法知道是否为它设置了allowNetworking="internal"
,可能使用ActionScript(2.0或3.0)。
我找到了solution,但它没有区分限制是来自allowNetworking
还是allowScriptAccess
设置。
我并不是特别想要一个解决方案(虽然这也很有趣),但只是为了能够检测是否将allowNetworking
设置为"internal"
或至少"all"
以外的其他内容。
干杯:)
答案 0 :(得分:1)
您可以尝试执行特定的受限API并查看是否抛出SecurityError来测试网络API限制。
public static function getNetworkingRestriction():String {
var result:String = "all"; // default level
try {
// first try SharedObject. If it throws a SecurityError, then allowNetworking="none"
SharedObject.getLocal("test");
try {
// SharedObject didn't throw a SecurityError.
//If ExternalInterface.call() throws a SecurityError then allowNetworking="internal"
ExternalInterface.call("");
}
catch (e:SecurityError) {
result = "internal";
}
}
catch (e:SecurityError) {
result = "none";
}
return result;
}
可以找到受限制的网络API列表here