Определить параметр allowNetworking во Flash - PullRequest
1 голос
/ 23 мая 2011

Привет,

Это касается проблемы безопасности Flash / песочницы. Мне было интересно, есть ли способ для загруженного объекта Flash .swf узнать, установлено ли для него allowNetworking="internal", возможно, с использованием ActionScript (2.0 или 3.0).

Я нашел решение , но оно не различает, являются ли ограничения настройками allowNetworking или allowScriptAccess.

Я не особо ищу обходной путь (хотя это тоже было бы интересно), но просто чтобы иметь возможность обнаруживать независимо от того, установлено ли allowNetworking на "internal" или хотя бы на что-то другое чем "all".

Приветствия:)

1 Ответ

1 голос
/ 23 мая 2011

Вы можете проверить ограничения сетевого API, попытавшись выполнить определенные ограниченные API и посмотрев, выдан ли SecurityError.

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 можно найти здесь

...