3

私はオンライン審査員システムを設計したい学生です。

問題があります: サーバーを安全に保つために、プログラムにファイルの読み取りまたは書き込みの権限を与えないようにする必要があります。プログラムは、別のユーザーがオンライン審査システムを通じて提出したものです。サーバープログラム自体ではありません。

オンラインジャッジシステムのユーザーがソースコードを提出すると、サーバープログラムがそれをコンパイルして実行します。したがって、サーバー プログラムはサーバーを安全に保つ必要があります。

私のプラットフォームは Windows で、プログラミングには C++ を使用しています。

誰か私にいくつかの提案をしてもらえますか?

4

2 に答える 2

2

プログラム自体の動作を簡単に防ぐことはできません。また、プログラムが悪意を持っていないことを確認することもできません。

できること: アクセス権が制限された (ほとんどない) ユーザーとしてプログラムを実行します。サーバー プログラムはそのユーザーになり、コンパイルしたプログラムを実行する必要があります。そのユーザー アカウントを使用して実際にプログラムをコンパイルすることもできます (まれに、誰かがあなたのコンパイラの悪用方法を知っている可能性があります)。

別のユーザーとしてプログラムを実行する Windows コマンドは次のとおりrunasです。

于 2012-07-11T16:30:57.787 に答える
0

ファイルとディレクトリのパーミッションを変更し、CreateProcessAsUser を使用して、ユーザーが送信したプログラムを、アクセス権が制限された (ほとんどない) ユーザーとして実行できます。

于 2012-07-11T16:44:44.093 に答える