9

HTML5ゲーム用のオンラインアラケードを設計しています。ユーザーは、ゲームを含むzipファイルをアップロードできます。

アップロード時に、zipはサーバーによって解凍され、各ファイルはループされて、ホワイトリストに対して拡張子をチェックします。

  • .html
  • .js
  • .png
  • .jpg
  • .appcache
  • .m4a
  • .ogg

(ゲームは、それらのファイルをエクスポートするゲームエディターで作成する必要があります)。これにより、人々がzipやサーバー側のスクリプトファイルなどをアップロードするのを防ぐことができます。

その後、ゲームは静的なcookielessドメイン(scirra.net)に移動されます。ゲームがscirra.comページでプレイされると、ゲームはscirra.netドメインを指すiframeに表示されます。これにより、悪意のあるJSがscirra.comCookieにアクセスするのを防ぐことができます。

このiframeテクニックとホワイトリストは、悪意のある行為が行われるのを防ぐのに十分包括的なものですか?各JSファイルを実際にスクリーニングすることはできないため、悪意のあるJSをアップロードしようとしていると想定する必要があります。

4

3 に答える 3

4

iframeのオリジン継承ルールにより、scirra.net iframe が scirra.com に干渉するのを防ぐことができます。

ただし、これはすべての攻撃を防ぐわけではありません。事実上、保存された XSS 脆弱性を導入しています。XSS を使用して、ActiveX コンポーネントのバッファ オーバーフローを悪用するなど、ブラウザ ベースの攻撃を仕掛けることができます。Flash、Adobe Reader、または Microsoft Office の脆弱性を悪用する。

scirra.net コンテンツでウイルス対策を実行することを検討する必要があります。これはすべての攻撃を防ぐわけではありませんが。iframe で処理されたページは、悪意のあるコンテンツを含む別の iframe をリダイレクトまたは導入する可能性があります。

Cheeksoftが指摘したように。アプリは XSS を使用して相互に影響を与えることができます。悪意のあるアプリは、別のアプリのオフライン ストレージにアクセスしたり、別のアプリに埋め込まれた他のデータを取得したりする可能性があります。各アプリにサブドメインを強制的に適用すると、この問題が軽減されます。*.scirra.net がサーバーを指すように DNS レコードをセットアップし、Web アプリ内でドメイン名を管理できます。

于 2011-11-22T15:30:01.640 に答える
1

あなたが提供するゲーム エディターにいくつかのスクリーニング機能を組み込むのはどうですか? 外部 URL への参照を選別し、コード検証を実行し、エンコーディングをチェックします。

改ざんを防ぐために zip ファイルをロックダウンする必要がありますが、とにかくそれは良い考えです。

于 2011-11-22T18:20:06.537 に答える
0

これを読んでいる他の人のために、実験的/ベータ版のiFrame サンドボックス属性があります。

http://www.whatwg.org/specs/web-apps/current-work/multipage/the-if​​rame-element.html#attr-iframe-sandbox

現在、Chrome と Opera でのみ動作することに注意してください。これにより、いくつかの制限機能を指定できます。

ただし、私たちの質問の場合、私たちはアイデアを破棄し、ゲーム作成プログラムを持つという有利な立場にあるため、コアで安全であることが保証されている Json データをユーザーにアップロードさせるだけでよいと判断しました。当社がホストしているエンジン機能。

すべてのゲームを手動で承認するよりも、手動でレビューして使用を承認できるプラグイン.

于 2011-11-22T18:46:21.603 に答える