gpt4 book ai didi

php - 如何为从php脚本调用的c程序设置计时器?

转载 作者:行者123 更新时间:2023-11-30 17:55:47 26 4
gpt4 key购买 nike

我的网页中有一个文本区域,用户可以在其中粘贴 C 程序。在服务器端,我将此代码适本地保存在文件中。我使用shell_exec()函数调用gcc来执行c程序。这很好用。执行部分也是如此。

但是如果用户(无意)故意给出无限循环怎么办?当我使用该功能时 -

     shell_exec("./a.out")

程序进入无限循环。如何从 php 脚本本身中跳出这样的循环?有办法吗?

最佳答案

使用ulimit限制CPU使用率?请注意,这是每个进程的,因此如果用户不断“ fork ”该进程,您可能会遇到麻烦。

另一种方法是使用一个包装进程来监视并终止其所有子进程,并让它启动 a.out。这取决于您是否可以信任您的“客户”(例如,他们是您的好 friend ,还是这是一个学校项目或公共(public)网站) - 您的偏执程度应该随着威胁程度的增加而增加。

如果您想要更精细的安全性,请在虚拟机中通过 ssh 运行该过程。然后,只需在 X 秒后终止虚拟机,然后从保存的快照启动一个新的虚拟机即可。 (您可以有一个准备运行的虚拟机池,这样用户就不必等待虚拟机加载)

关于php - 如何为从php脚本调用的c程序设置计时器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13988190/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com