私はC#でアプリケーションを書いています。それは、C、C ++、またはJavaのいずれかで書かれた外部コードをコンパイルして実行することです。この点に関して、私はいくつか質問する必要があり、以下は私がこれまでに行った調査です。
- ユーザーから送信されたコードのリクエストを受信するアプリケーションをホストするサーバーがあります。これらのリクエストは特定のソケットで送信されます。
- そのようなすべての要求をキューに入れるレシーバースレッドがあります。
- キューからデキューし、プログラム(送信されたコード)をコンパイルして実行するコンシューマースレッドがあります。コンパイルと実行中に、適切なコンパイラとローダーがコマンドラインから使用され、C#アプリからのプロセスとして実行されます。
- 現在のところ、サンドボックス化、サーバーアクセスを公開しないなどのセキュリティ問題は、後で検討されていると想定できます。私の主な焦点は、この実行ロジックにあります。
次の質問があります。
- これを行うためのより良い方法はありますか/私は何か間違ったことをしていますか?