2011-09-11 8 views
1

私はgccコンパイラでc/C++プログラムをオンラインでコンパイルしようとしています。 ユーザがc/C++コードを入力すると、私は一時ファイル(temp.cpp)を作成し、それ以降はコンパイルc/C++ online [セキュリティの問題]

exce('gcc temp.cpp');
PHP関数でコンパイルします。それ以降は exce()関数でも実行します。 どうすれば私のウェブサイトを傷つけないようにするにはどうすればよいですか?C/C++プログラムでファイル、データベース、プロセスを殺すのを防ぐ方法を教えてください。

+1

ファイルを実行する予定がある場合 - C++やgccには私が気づいていない広範囲のホワイトリストやライブラリを除外しない限り、これはひどく危険です。コンパイルされたプログラムは、chroot jailなどで実行する必要があります。あなたがこれを実行しているオペレーティングシステム(そしてあなたが必要とするあなたのサーバへのルートアクセス権を持っているかどうか)によっては、これはserverfault.comやlinux.stackexchange.comの方が適しているかもしれません。 –

+1

非常に注意深く思考し、b)非常に小さく制限されたライブラリのみを許可することによって、しかしそれ以上に考慮すべきことはたくさんあります。 –

+1

[有害なCソースファイルのチェック?](http://stackoverflow.com/questions/6810322/harmful-c-source-file-check) –

答えて

6

サーバ上でコンパイルされたプログラムを実行しない限り、問題ありません。

を実行すると、サーバーでプログラムを実行すると、サンドボックスする必要があります。難しくなる可能性があります。それらの仕組みについては、codepad's about pageを参照してください。

+0

クールリンク! ---- –

関連する問題