2011-12-09 6 views
0

私はいくつかのゲームを作りましたが、そのプレイヤーが自分のドメインでしかプレイできないようにして、オフラインでプレイしたり、他のサイトをプレイすることを禁止しました。それを行う方法はありますか?どういうわけかドメインなどをチェックしますか?ローカルではなく、他のドメインにない、自分のページ(ドメイン)上でのみFlash-appを実行させる方法はありますか?

答えて

1

Flashコンテンツの配信を確実に制御することは難しいですが、いくつかの異なるルートがあります。少なくとも、他の場所にコンテンツを公開することを難しくしています。

URLがswfオブジェクトをロードしているかどうかを確認する方法の1つは、をLoaderInfo classからチェックすることです。

var url:String = loaderInfo.loaderURL; 
あなたはまた、 ExternalInterface classを通じてJavaScriptを使用してロードのURLを確認することができます

if(!/^https?:\/\/www\.example\.com/.test(url)) { 
    //This seems to be outside of your domain 
} 
:それはこのように、ご希望のドメイン内に存在することを確認するためにその後のURLをご確認ください

var url:String; 
if (ExternalInterface.available) { 
    url = ExternalInterface.call("window.location.href"); 
} 

このアプローチに関する追加情報は、次の記事を参照してください。 http://www.ghostwire.com/blog/archives/as3-domain-locking-swfs/


もう1つの方法は、管理しているドメインからファイルをダウンロードしようとすることです。これは、すでに外部アセットをswfにダウンロードしている場合に特に効果的です。

アセットに絶対URLを指定すると、/assets/myExternalAsset.xmlのような相対URLではなく、http://www.example.com/assets/myExternalAsset.xmlのように、cross-domain-policyを設定してコンテンツにアクセスできるドメインを特定できます。

許可されたドメイン外からコンテンツにアクセスすると、セキュリティエラーイベントが発生し、ダウンロードが完了しません。


はこのことを言って、私はあなたのコンテンツは、例えば、別のサイトにiframe要素の内部に埋め込まれている場合は、上記のいずれかの方法が完全にあなたを保護する場合は、完全にはわかりません。

+0

hm。ユーザーがブラウザでJSを無効にした場合はどうなりますか? – Eugeny89

関連する問題