フラッシュ ファイル (swf) を安全に埋め込むにはどうすればよいですか?
質問
ユーザーが自分の投稿に独自の Flash アニメーションを埋め込めるようにしたいと考えています。通常、実際のファイルは無料の画像ホスティング サイトでホストされています。ユーザーが再生ボタンをクリックしない限り、実際には Flash をロードしません (ページのロード時に何も自動再生されないようにします)。Flash で本当に迷惑ながらくたを作成する人がいるのは知っていますが、その可能性に関する情報が見つかりません。 深刻な Flash アプリが視聴者に与える可能性のある損害。
インターネットからの Flash ファイルを埋め込むのは危険ですか?もしそうなら、ユーザーに無害なアニメーションを埋め込ませながら、有害なアプリを排除するにはどうすればよいでしょうか?
編集:
私が収集した情報によると、最も明白な脅威は、actionscript がユーザーを悪意のあるサイトにリダイレクトすることです。
アドビ 言う 設定できます allowScriptAccess=never そして allowNetworking=none そして、swf はそれ自体の外部にアクセスしてはなりません。 これですべての問題が解決しますか?
解決 5
アドビは設定できると言っています スクリプトアクセスを許可する=決して、そして ネットワークを許可する=none であり、swf はそれ自体の外部にはアクセスできません。ただし、allowNetworking は Flash Player 9 にのみ搭載されているため、以前のバージョンの Flash を使用しているユーザーは依然としていくつかのエクスプロイトの影響を受ける可能性があります。
他のヒント
Flash にはいくつかの優れたセキュリティ対策が施されています。ユーザーがサイトに swf をアップロードして埋め込むことを許可することは安全ではなく、基本的に XSS 攻撃の準備をしていることになります。
ただし、ホットリンクを許可しても問題はありません。swf は、それをホストしているドメインにロックされ、そのスペースの外で URL を呼び出すことはできません。
それは依然として「邪悪なリンク」に対して開かれており(それらに適切な言葉があると確信しています)、つまり、yoursite.com/admin/deleteallpages.phpへの通常のリンクがあり、それを「あなたとして」ロードしようとすることを意味します。 。ただし、このデータをいかなる方法でも使用することはできません。基本的には通常のリンクと同じです。最新の cms はその種の攻撃から保護されていると思います。
フラッシュはこれを完全に異なるドメインと同じと見なすため、別のサブドメインでフラッシュをホストしても同じ保護を得ることができます。
不明なソースからの SWF を埋め込む場合は、ロードされた SWF が予想以上の画面領域を占有しないように、ローダーにマスクをスローすることもベスト プラクティスです。
これを行うための疑似コード:
var maskSpr : Sprite = new Sprite();
maskSpr.graphics.beginFill();
maskSpr.graphics.drawRect(0,0,safeWidth,safeHeight);
maskSpr.graphics.endFill();
myLdr.mask = maskSpr;
実際には複数のオプションがあります。
完全に安全にするために、allowScriptAccess=never およびallowNetworking=none を設定すると、swf はそれ自体の外部にはアクセスできなくなります。
注記:allowNetworking は Flash Player 9 (さまざまな myspace ワームに対応して作成されたもの) にのみ含まれているため、次を使用する必要があります。 SWFオブジェクト 適切なバージョン以上の Flash Player を使用しているユーザーのみが Flash をロードできるようにします。
ただし、YouTube ビデオなどを有効にしたい場合は、allowNetworking を「none」に設定することはできません。幸いなことに、このフィールドには中間レベルのセキュリティ「内部」があり、SWF がホストされているドメインと通信できるようになります。
また、サイトにcrossdomain.xmlファイルを置かないほうがよいことにも注意してください。これらの危険性については、こちらをお読みください。 ここ そして他の場所でも。
より詳細に説明した他の回答で言及されている他のサイトをいくつか紹介します。
http://www.adobe.com/devnet/flashplayer/articles/secure_swf_apps_04.html
http://blogs.adobe.com/stateofsecurity/2007/07/how_to_restrict_swf_content_fr_1.html
として 例 Drupal にはシナリオがあります ユーザーからの Flash コンテンツを許可することがセキュリティ上の懸念となる可能性について説明します。
はい、危険です。
それを許可する簡単な方法はありません。YouTube、Hulu などを許可するドメイン ホワイトリストを作成できます。ただし、ホワイトリストへの登録は本質的に骨の折れる作業であり、常に更新する必要があります。