問題タブ [sandbox]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - サンドボックスで Rhino for Java を使用して Javascript を実行するにはどうすればよいですか?
Java アプリケーションの一部は、非開発者が作成した JavaScript を実行する必要があります。これらの非開発者は、データのフォーマットに JavaScript を使用しています。(単純なロジックと文字列の連結がほとんどです)。
私の質問は、これらのスクリプトの実行をセットアップして、スクリプト エラーがアプリケーションの残りの部分に大きな悪影響を及ぼさないようにする方法です。
- 無限ループを防ぐ必要がある
- 新しいスレッドの生成を防ぎます。
- サービスと環境へのアクセスを制限する
- ファイル システム (例: 不満を持ったスクリプト ライターがファイルを削除することにした場合)
- データベース (データベース レコードを削除するのと同じこと)
基本的に、JavaScriptスコープを設定して、必要なものだけを正確に含め、それ以上は含めないようにする必要があります。
java - アルゴリズム C を Python に変換する
一部の C コードを Python コードまたはバイトコードに変換したいと考えています。問題の C コードは、私が純粋にアルゴリズムと呼んでいるものです。プラットフォームに依存せず、I/O はなく、アルゴリズムとメモリ内データ構造のみです。
例として、正規表現ライブラリがあります。翻訳ツールは、ライブラリ ソース コードを処理し、サンドボックス環境で実行できる機能的に同等の Python モジュールを生成します。
どのような具体的なアプローチ、ツール、テクニックを推奨できますか?
注:環境がサンドボックス化されているため、 Python C 拡張または ctypes はオプションではありません。
別のメモ: C-to-Java-bytecode コンパイラがあるように見えます。libjpeg を Java にコンパイルしました。Java バイトコード + VM は CPython バイトコード + VM と違いすぎますか?
javascript - ブラウザで実行されている JavaScript をサンドボックス化することはできますか?
HTML ページで実行されている JavaScript コードで通常使用できる機能へのアクセスを防ぐために、ブラウザーで実行されている JavaScript をサンドボックス化することは可能かどうか疑問に思っています。
たとえば、「興味深いイベント」が発生したときに実行するイベント ハンドラーをエンド ユーザーが定義できるようにする JavaScript API をエンド ユーザーに提供したいが、それらのユーザーがwindow
オブジェクトのプロパティや関数にアクセスできないようにしたいとします。私はこれを行うことができますか?
最も単純なケースでは、ユーザーが を呼び出さないようにしたいとしましょうalert
。私が考えることができるいくつかのアプローチは次のとおりです。
window.alert
グローバルに再定義します。ページで実行されている他のコード (つまり、イベント ハンドラーでユーザーによって作成されていないもの) が を使用する可能性があるため、これは有効なアプローチではないと思いますalert
。- イベント ハンドラー コードをサーバーに送信して処理します。イベント ハンドラーはページのコンテキストで実行する必要があるため、コードをサーバーに送信して処理する方法が適切かどうかはわかりません。
おそらく、サーバーがユーザー定義関数を処理し、クライアントで実行されるコールバックを生成するソリューションはうまくいくでしょうか? そのアプローチが機能したとしても、この問題を解決するためのより良い方法はありますか?
internet-explorer - Internet Explorer に別のデータ ディレクトリを設定できますか?
Google Chrome では、コマンドライン引数 --user-data-dir="..." を指定して、Chrome が Cookie やキャッシュなどの状態に別のディレクトリを使用するようにすることができます。これにより、「新鮮な」ブラウザから簡単に Web ページをロードし、複数の独立したユーザーをシミュレートできます。
Internet Explorer (6、7、または 8) で同じことを行うにはどうすればよいですか?
編集:IEは常に現在のユーザーのプロファイルを使用しているように見えるため、システムに複数のユーザーを設定してそれらを切り替える必要があります。なんてつらい。
web-applications - インストールせずに新しい言語またはフレームワークを試すにはどうすればよいですか?
非常に多くの言語とフレームワークが存在し、常に新しいものが登場しているため、それぞれをダウンロード、インストール、構成して評価する時間がありません。過去に、コードをウィンドウに書き込んだり貼り付けたりして、通常はチュートリアルの設定で、ブラウザでリアルタイムで結果を確認できる Web アプリケーションに出くわしたことがあります。
特定のテクノロジーのお気に入りのサンドボックス サイトは?
編集: @fretj は優れたGoogle Code Playground (+1 賛成票) へのリンクを提供してくれましたが、Google 独自のアプリ (検索、マップ、地球、言語など) を試すためのものだと思いました。しかし、いくつかの隠された宝石が含まれていることがわかりました。アプリに加えて、 jQuery、jQuery UI、MooTools、Dojo、Prototype Scriptaculousなど、彼らがホストする多くの Javascript ライブラリを試すことができます。
それらはすべて、[API を選択] ボックスの [ライブラリ] カテゴリの下に隠されています。Google Libraries というアプリのカテゴリだと思っていたので見落としていました。Javascript 自体の Javascript カテゴリもあります。
php - PHP5 または代替手段内でのサンドボックス化の推奨事項は?
私は、extjs をフロントエンドとして使用して webmud のようなゲームを実行する人事プロジェクトにゆっくりと取り組んでいます。私が行った設計上の選択の 1 つは、ゲーム ロジック用にユーザーが生成した評価済みコードを許可することでした。そのため、プレーヤーが新しい「部屋」に入ると、「プレーヤーは以前ここにいたことがありますか、ここにいるはずですか、x 個のインベントリ アイテムを持っていますか」という行に沿って多数の状態スクリプトが呼び出され、それに応じて応答します。さらに、基本的な部屋の「アクション」はハードコーディングされますが ( go N/S/E/W )、高度なアクションは同じユーザー生成の評価済みスクリプトとして利用できます。
もともと私は怠け者で、このロジックに評価済みの PHP を使用するつもりでしたが、偏執狂的な感覚が働いています。そのため、私が見つけた 2 つの代替手段は runkit_sandbox ですが、プライマリ スレッドとサンドボックス間のオブジェクトの交換はサポートされていません。 (単純なデータ型と配列のみ) または、私のゲーム ロジックとして ecmascript を使用http://ejohn.org/blog/spicing-up-embedded-javascript/ .
この 2 つの長所と短所は、runkit を使用すると、スクリプトを非常に高速にロックダウンできますが、ecma インタープリターを使用すると、変数、関数、および場合によってはオブジェクトを javascript 実行空間に選択的にバインドできますが、まだベータ版の状態で、どれだけうまく動作するかまだわかりません。
これらはオプションのためのものですか、それとも私が知らない他の何かがより良い選択かもしれませんか? 環境: Linux、PHP-CGI 5.3、または Google アプリ エンジンとして。
java - さまざまなJavaクラスに異なる権限を付与する方法は?
Java アプリケーションがあり、それを拡張可能にしたいと考えています。拡張機能を作成するには、社内の開発者が特定のインターフェースを実装する Java クラスを作成します。また、関連するヘルパー クラスを作成することもできます。これらの拡張機能を停止することなくアプリケーションにロードしたいと考えています。
このクラスでできることを次のように制限したいと思います。
- アプリケーションの API でメソッドを呼び出します (これはコンストラクターへのパラメーターになります)
- 同じパッケージ内に他のオブジェクトのインスタンスを作成します (これにより、拡張クラスの作成者は他のクラスを使用して作業を完了できます)。
クラスが呼び出されると、渡された API オブジェクトには、すでに「顧客」が定義されており、メンバー変数として格納されています。これを使用して、API を介したアクセスをその顧客のデータに制限します。
これらのクラスに、データベースへのアクセス、ディスクへの書き込み、その他の処理などを実行させたくありません。同じ開発者チームが拡張機能とコアの両方を作成するアクセス権を持つため、これは主に依存関係の管理とカプセル化への取り組みです。システム。
これにはパターンがありますか?私は正しい軌道に乗っていますか?
php - PHP内からサンドボックスでPHPコードを実行する方法はありますか
既に定義されているさまざまな定数とさまざまなバージョンのクラスを使用する php スクリプトを php から実行したいと考えています。
私ができるサンドボックスphp_moduleはありますか:
それ以外の
または、proc_open()が唯一のオプションですか?
PS: スクリプトは Web からアクセスできないため、fopen(' http://host/script.php ') はオプションではありません。
audio - AdobeAIR1.5サンドボックス+マザーボードスピーカー
AIRを介してマザーボードのPCスピーカーにアクセスできるかどうか知りたいですか?
これはアラームタイプのプログラム用であり、単純なビープ音以上のピッチ制御が必要です。これはAIRを介して達成できますか?
または、そのことについてWebベースのフレームワークにない場合はどうでしょうか。少しトリッキーなようですので、誰かが解決策を持っているかどうか知りたいです。ありがとう!
javascript - 安全でサンドボックス化可能なユーザー公開プログラミング言語/環境?
ウェブサイト用のAPIを提供するだけでなく、サーバー上で実行される簡単なスクリプトを作成する機能をユーザーに提供したいと思います。スクリプトは、ユーザーが所有するオブジェクトにアクセスでき、データを操作、変更、またはその他の方法で処理できます。
これらのスクリプトが使用するリソースを細かいレベルで制限できるようにしたいと思います(たとえば、最大実行時間は100ミリ秒にする必要があります)。また、各ユーザーが限られたデータとリソースのセットにのみアクセスでき、ディスクや他の人のデータなどにアクセスできないように、安全なサンドボックスを確保したいと思います。
通常、スクリプトは非常に単純であり(たとえば、特定の基準に一致する値の合計または平均を作成する)、テンプレートでよく使用されます(たとえば、このセルまたはhtml要素の値に平均または和)。
理想的には、よく知られた、一般的に利用可能なプログラミング言語のサンドボックス化されたサブセットを使用して、ユーザーが簡単に理解できるようにしたいと思います。バックエンドはPythonで書かれているので、Pythonベースの言語には利点がありますが、私は他の言語やテクノロジーを受け入れています。Javascriptは、その単純な性質と一般的な可用性のためにも魅力的です。
言語はDSLとライブラリの作成をサポートする必要があります。
ターゲットオーディエンスは、Webベースのアプリケーションの一般的なユーザーベースであり、必ずしも技術的なものではありません。言い換えれば、特定のプログラミング言語の特定の知識を持つベースを対象としていません。私の期待は、ユーザーのサブセットが大多数によって使用されるスクリプトを作成することです。
言語とテクノロジーに関するアイデアや推奨事項はありますか?これを試みている他の人の例と彼らが遭遇した成功と失敗はありますか?