Estoy construyendo una interfaz basada en web donde las personas pueden escribir en código C simple para resolver preguntas de programación algorítmica. Estoy usando el editor Ace donde las personas pueden escribir el código y cuando presionas el botón ejecutar, el código C se envía al servidor, se compila y se devuelve la salida.Organizing Programming Contest - Cómo compilar y ejecutar
Cómo lograr la segunda parte de una manera segura. Me refiero a dado un archivo de código C, compilarlo y ejecutarlo. No puedo confiar en el código, así que ¿cómo puedo asegurarme de que no sea malicioso y no dañe mi sistema? También cómo imponer la memoria y los límites de tiempo.
¿Existe algún sistema de código abierto ya existente que pueda modificar para adaptarlo a mis necesidades? No encontré nada en mi búsqueda. ¿O algunos consejos sobre cómo debo proceder ahora?
edición: Encontrado http://cs.sru.edu/~contest/rocktest/ y tratando de entender su código, pero todavía en busca de mejores opciones, preferentemente en php
posible duplicado de [Programa Grading - Compilar/ejecución de código C++ dentro de C++] (http://stackoverflow.com/questions/5131085/grading-program-compile-executing-c-code-within-c) –
¿Es http://ideone.com/ demasiado simplista? – Johnsyweb
Consulte la [sobre la página] (http://codepad.org/about) para [codepad.org] (http://codepad.org/). A saber: "La estrategia es ejecutar todo bajo ptrace, con muchas llamadas al sistema no permitidas o ignoradas. Los compiladores y los ejecutables finales se ejecutan en una cárcel chroot, con límites de recursos estrictos". –