首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flash SecurityDomain、P2P设置和多重主权财富基金

Flash SecurityDomain、P2P设置和多重主权财富基金
EN

Stack Overflow用户
提问于 2012-03-19 11:05:20
回答 1查看 518关注 0票数 2

我有两个主权财富基金:

  1. 应用程序swf
  2. p2p客户端swf,允许使用rtmfp复制技术(通过卷卷服务)

加载数据。

其主要思想是在特定域上有一个p2p加载器,它可以在p2p网络中工作,而无需多次请求每个域的许可,例如:

  • 应用程序1 (http://domain1.com/app.swf) \x
  • 应用程序2 (http://domain2.com/app.swf) \x{e76f}<-> p2p数据加载器

p2p客户端通过请求加载二进制数据,我认为内容并不重要。

因此,我使用以下类加载p2pclient swf (app.swf)

代码语言:javascript
复制
public class ClientLoader {

    // .. some code

    public function load(cb:Function, err:Function):void
    {
        _cb = cb;
        _err = err;

        var loader:Loader = new Loader();
        loader.contentLoaderInfo.addEventListener(Event.COMPLETE, _onLoaded);
        loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, _onIoError);
        loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, _onSecurityError);
        // note that context has neither application domain nor security domain
        loader.load(new URLRequest(_url), new LoaderContext());
    }

    private function _onLoaded(e:Event):void
    {
        trace("Loaded. Connecting to the p2p network...");

        _client = e.target.content;
        _client.addEventListener(Event.CONNECT, _onClientReady);
        _client.connect();
    }

    private function _onClientReady(e:Event):void
    {
        _cb(_client);
    }

}
}

(p2pcli.swf):本身的p2pclient

代码语言:javascript
复制
public class P2P extends Sprite
{
    public function SqP2P() {
        Security.allowDomain("*");
    }

    public function connect():void
    {
        _connection = new NetConnection();
        _connection.addEventListener(NetStatusEvent.NET_STATUS, _netStatus);
        _connection.connect(CIRRUS_ADDRESS, CIRRUS_KEY);

        // after successful connect this method called
        _loadGroup();
    }

    private method _loadGroup():void
    {
        var spec:GroupSpecifier = new GroupSpecifier(_name);
        spec.serverChannelEnabled = true;
        spec.objectReplicationEnabled = true;

        _group = new NetGroup(connection, spec.groupspecWithAuthorizations());
        _group.addEventListener(NetStatusEvent.NET_STATUS, _netStatus);
    }

    private function _netStatus(event:NetStatusEvent):void
    {
        trace("NetStatusEvent:", event.info.code);
    }

}

但是看起来Flash忽略了安全会话,并且试图为app.swf所属的域保存弹出设置,而不是p2pcli.swf域。为什么?!

我有完全相同的代码,但是p2pcli.swf被swf所取代,它将数据存储在中,并且所有的domain1-2-N.com都可以访问它。

有什么想法吗?

我知道,我的英语很烂:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-22 19:48:45

我真的不太确定,但我会把我的答案扔出去,以防有帮助。

基于这类安全消息的一般目的,我不完全确定您是否能够阻止该对话框的出现。在某些情况下,我确信Peer辅助网络对某些人来说可能是一种安全风险(无论如何,这是在使用他们的带宽)。在Flash设置对话框( Windows 7中的Control.)中,打开和关闭通知的设置是用户端的,因此暗示它内在地被硬连接到Flash平台中。

当然,由于我更多的是一个Adobe专家,我可以完全wrong...for你的项目的缘故,我真诚地希望我是!

再说了,你的英语几乎是完美的。为了清晰起见,我修改了一个段落,但如果不是这样的话,请注意。:D

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9769003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档