“ブートストラップ”アプリケーションSecurityDomainへのリモートswf(actionscript3)

StackOverflow https://stackoverflow.com/questions/224422

質問

現在、My Flash(AS3 / AIR)アプリケーションは、(Flashアプリの)少し変わったアーキテクチャを使用して、実行時にロードされたコンテンツの特定の基本クラスを提供しています。外部コンテンツは、「スタブ」ベースクラスでパブリッシュされます。これは、ロード時に実行時に「実際の」ベースクラスによって隠されます。 Adobeがこれを bootstrapping pdf )、それは今まで私にとって非常にうまく機能しています。確かに言う資格はありませんが、私が信じているDLLアーキテクチャとは違いません。

これまで、ロードしていた外部コンテンツは同じ SecurityDomain (同じサンドボックス)内からロードされていたため、子 ApplicationDomain 。残念ながら、私が知る限り、 SecurityDomain にまたがる ApplicationDomain は関連できません。つまり、あるSecurityDomのAppDomをAppDomの子にすることはできません。別のSecurityDomから。

ただし、この外部コンテンツをアプリケーションサンドボックスの外部から読み込む必要があります。 SecurityDomain 間の通信を実現する方法はたくさんあります-それらのほとんどは非常に限られていますが、AIRの sandboxBridge APIはおそらく最も強力です。残念ながら、これらの通信方法では、このブートストラップアーキテクチャを実現できません。

LoaderContext オブジェクトには securityDomain プロパティがありますが、Flashセキュリティは「ローカルswfs」がそれに触れることを禁止しています( SecurityError または同様)。

Flexの SWFLoader には有望に見える trustContent プロパティがありますが、 SecurityDomain Loader LoaderContext 内。

再設計する必要があると思いますが(これは簡単ではありませんが)、研究で何かを見逃していないことをここで確認したいと思いました。

だから...アイデアや知恵の真珠?セキュリティモデルに取り組んでいるAdobeの誰かが決定的な「はい/いいえ、できません/できません」を仕掛けることができるなら、私は特にそれが大好きです。...

事前に感謝します!

補遺:その後、ブートストラップがすべて外部ドメインで行われるように、アーキテクチャを再設計することにしました。しかし、私の質問は好奇心からまだ立っています。

役に立ちましたか?

解決 2

執筆時点では、AIRを使用している場合でも、別のドメインからの SecurityDomain ApplicationDomain をロードできないと判断しました。

設計上、推測されます。

他のヒント

技術的に言えば、AIRアプリケーションで外部SWFをアプリケーションディレクトリ内に保存し、そこからロードして同じセキュリティサンドボックスに配置することはできませんか?

ただし、これが悪いカルマになる理由はいくつかあります。そのため、ローカルアプリケーションコンテンツとリモートの信頼されていないコンテンツを同じアプリケーションドメインに配置するのが適切なアーキテクチャアプローチであるかどうかは、どのソリューションでも必ず疑問が生じるようです..?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top