7

注:これについていくつかのタグの提案をいただければ幸いです。

サーバー上のデータをプログラムで操作する方法をユーザーに提供したいと思います。これは、 https://www.onx.msが採用している方法とは異なり、ブラウザ内のコードエディタを使用して後日実行することで実行されます。

DSL(採用の障壁?)を書くことを避けたいのですが、ユーザーが書く言語はJavaScriptまたはRubyベースのどちらかを好みます。

私の明らかな懸念はセキュリティです。ユーザーが生成したコードをサーバー側で実行できるようにすることの危険性は理解していますが、リスクを排除するためにどのような手順を実行できますか?

http://railsforzombies.comのようなサイトは実際に使用irbしていますか、それともそれよりもはるかに単純ですか?

4

2 に答える 2

1

Google Cajaを使用すると、ユーザー指定のJavascriptをWebサイトに安全に埋め込むことができますが、サーバーではなくユーザーのブラウザーでコードを実行することを目的としている可能性があります。自分では使ったことがありません。

他の言語用の既製のソリューションがあるかどうかはわかりませんが、カスタムソリューションでは、ユーザーがディスクに書き込み、ネットワーク接続を開き、プロセス/スレッドをフォークできるようにするすべてのAPIライブラリを削除した後、インタプリタを自分で再コンパイルする必要があると思います、およびその他の危険な操作またはサービス拒否操作を実行します。「安全な」ライブラリをホワイトリストに登録することが、そのために機能する唯一のアプローチです。

個々のユーザー用に個別の仮想サーバーがあると、より安全になります。

于 2012-06-19T23:18:07.793 に答える
1

Java(またはJRuby、Scala、Clojureなどの他のJVM言語)を検討しますか?もしそうなら-サンドボックス化されたアプリの特権を制限するためのJVMには豊富な力があります。詳細については、この他の質問を参照してください:Javaサンドボックスを作成するにはどうすればよいですか?

于 2012-06-20T08:07:00.530 に答える