サンドボックスで ac コードを実行しようとしています。libsandbox 0.3.5 を使用しています。これは私がそれを行う方法です: 1) PHP ファイルは shell_exec を使用して最初にサンドボックスをコンパイルします
shell_exec("gcc -o sandbox Sandbox.c -lsandbox");
2)次に、サンドボックス化するプログラムもコンパイルします
shell_exec("gcc -static -o 19 19.c");
3) 次に、プログラムを実行します
shell_exec("./sandbox ./19<inputFile>outputFile");
上記のコードは、inputFile から stdin を取得し、19 プログラムの outputFile に出力を書き込みます。サンドボックス プログラムは、"OK"、"RF"、"TL"、"ML" などを返します。サンドボックス プログラムの出力を、それを呼び出す PHP ファイル内の文字列として受け取りたいと考えています。どうすればいいのですか?
私が直面しているもう 1 つの問題は、十分な権限があるにもかかわらず、ouptputFile が作成されないことです。
また、サンドボックスで C プログラムを実行するとセキュリティは確保されますか? のように、それで十分ですか、それとももっと予防策を講じる必要がありますか?