私は現在、自動ソースコード検証ツールを作成しています。基本的に、学生はさまざまなタスクの解決策としてC#ソースコードファイルをアップロードする必要があります。サーバーはフレームワーク内でこれらのファイルをコンパイルし、異なる入力ファイルに対してプログラムをチェックします。プログラムが生成する出力が有効な場合(定義済みの出力に等しい場合)、programmは有効であり、生徒はプログラムのポイントを取得します。自動コンパイルとサードパーティコードの実行
しかし、私は学生を信頼できるとは思えません;)サーバー上でファイルへのアクセスやその他の悪いことを試みる可能性があります。
私は最小限のアクセスを制限するために何ができますか?
何が検討する必要がありますか?
- ファイルアクセス
- 最大:
が出回っは考えました。実行時間
- は
- 反射
は、現在、私が想像できるコードをチェックする唯一の方法は、「ファイル」などのキーワードのためにそれを検索したネットワーキングのものをやって他とプログラム
しかし、私はこれが非常に安全ではないと確信しています。
提案がありますか?
ダブルチェックするだけで、サンドボックスを破壊する生徒にA +を渡す予定ですか?非常に困惑しているあなたは彼らのための割り当てをしないだろう。 Anyhoo、私は喜んで彼らの履歴書を取るでしょう。 –
彼らのほとんどは初心者ですが、彼らがより良くなったとき...生徒がサンドボックスを壊してテキストファイルを情報に残すことができれば、サーバー上でそれを分解して、すべてがうまくいき、A +を取得します。それらがサーバーをクラッシュさせたくありません。 – raisyn