如何处理php中的循环和运行时错误程序

如何处理php中的循环和运行时错误程序,php,c,loops,runtime,infinite,Php,C,Loops,Runtime,Infinite,我想创建一个web,它可以接受C代码程序,使用php和gcc在我的服务器上编译和运行该程序。但我不能处理无限循环程序,它给我的内存不足。对于运行时错误程序,它会使我的浏览器崩溃。我该怎么处理这个问题?非常感谢。需要用户输入的程序呢?PHP对此一无所知,事情将在shell\u exec()阶段冻结。你真的想打开允许在你的服务器上运行任意C代码的大门吗?这相当于在你家的前门上挂一个大牌子,上面写着“进来,免费下载房屋内容!偷走一切!享受!”。很酷,你可以编写C代码,在服务器上编译时挂起(客户端)浏览

我想创建一个web,它可以接受C代码程序,使用php和gcc在我的服务器上编译和运行该程序。但我不能处理无限循环程序,它给我的内存不足。对于运行时错误程序,它会使我的浏览器崩溃。我该怎么处理这个问题?非常感谢。

需要用户输入的程序呢?PHP对此一无所知,事情将在
shell\u exec()
阶段冻结。你真的想打开允许在你的服务器上运行任意C代码的大门吗?这相当于在你家的前门上挂一个大牌子,上面写着“进来,免费下载房屋内容!偷走一切!享受!”。

很酷,你可以编写C代码,在服务器上编译时挂起(客户端)浏览器。你确定吗?可能是。。。为C创建一个沙盒并不容易。我建议不要这样做。我已经写了一个,这是我页面上的代码:
。嗯,不,我仍然在我的本地主机上测试它……我不是在技术上发布它的,可以充分地对C应用程序进行沙箱处理,以确保运行它们是安全的,但这需要一些非常仔细的系统工程。如果您的设计甚至没有“处理无限循环程序”,那么它就没有机会对抗故意的恶意代码。即使是一个简单的chroot监狱也会有很大的帮助,但是您仍然需要处理
intmain(){for(;;){}}
junk。chroot监狱只会以任何方式限制文件系统访问。“被囚禁”的应用程序仍然可以完全访问网络和在其UID.Hmmm下运行的其他进程。在服务器上运行代码之前,我可以执行一些检查过程吗?也许检查执行时间或限制内存使用?简:那是愚蠢的差事。相反,你需要一个有限的环境。与其弄清楚什么是黑名单,不如提出自己的libc和系统库,明确地将您想要做的事情列为白名单。其他任何东西都会把你的系统弄得一团糟。换言之,你将经历一段漫长而艰难的奋斗。