1

私は HTML5 ゲームに取り組んでいます。機能の 1 つとして、上級ユーザーがゲーム内のオブジェクトで実行できる JavaScript で短いスクリプトを記述できるようにしたいと考えています。問題は、プレーヤー スクリプトができることを制限して、新しいウィンドウを開いたり、チートしたり、ゲームの性質を変更したりできないようにしたいことです。しかし、特定のメソッドをスクリプトに公開したいと思います。彼らは便利なものを作ることができます。

Web Workers でこれを行うことができると提案した人が何人かいます。これを行うには、javascript 内にインタープリターを作成する必要があると他の人から言われました。明らかに、私は単に eval を使用することはできません。どうすればこれを行うことができ、「最善の」方法がある場合、何が最善の方法でしょうか?

4

1 に答える 1

1

サンドボックスを作成する必要はありません。Javascript が既にそれを行っています。

ページ内に iframe を作成すると、その iframe には、元のページとは別の独自の JavaScript 環境があります。その後、html5 のフレーム間通信を使用してメッセージを送受信できます。iframe はユーザー定義のプログラムを実行し、その回答をホストに送り返して評価します。iframe から返されるものを信頼してはならず、範囲外のものはすべて破棄してください。

于 2013-06-11T21:08:14.110 に答える