Php C程序中的块系统命令

Php C程序中的块系统命令,php,c,system,block,permission-denied,Php,C,System,Block,Permission Denied,我正在编译和执行一个C程序,该程序在WindowsXP服务器上使用PHP系统命令 如果C程序包含一个系统命令,如System(“shutdown-a”)或任何系统命令,那么它会关闭我的系统 我希望这些命令被拒绝。当程序试图运行系统命令时,如何将“权限被拒绝”显示为输出 这是我的代码。 PHP脚本包含- system(gcc code.c -o out); system(out.exe); 如果C程序包含- int main() { system("shutdown -r

我正在编译和执行一个C程序,该程序在WindowsXP服务器上使用PHP系统命令

如果C程序包含一个系统命令,如
System(“shutdown-a”)
或任何系统命令,那么它会关闭我的系统

我希望这些命令被拒绝。当程序试图运行系统命令时,如何将“权限被拒绝”显示为输出

这是我的代码。

PHP脚本包含-

system(gcc code.c -o out);    system(out.exe);
如果C程序包含-

int main()     {      system("shutdown -r");   }

有没有办法阻止这些命令的运行?

好的,简单的回答是“不要以root用户身份运行”(这样用户只能访问他/她创建的文件,所以不会有太大的损坏机会)


更复杂的答案是将代码的运行分包到服务器内的虚拟机上。虚拟机可以在相当短的时间内从模板(或VM软件所称的任何东西)克隆出来。在虚拟机中,运行在虚拟机上的代码无法访问它运行的“真实”计算机,因此,如果用户想要销毁他/她的虚拟机,这就是他/她的问题-只需请求一个“新虚拟机”,然后他们就可以继续工作

Windows运行方式命令

您可以使用windows
runas
command作为特定用户运行命令。在该用户的配置文件中,设置白名单命令列表

滚动您自己的命令白名单


在PHP或C中创建一个允许通过C程序运行的命令列表,如果该命令不在已批准的列表中,它将被拒绝。或者你们中的大多数人喜欢危险地生活,创建一个黑名单,定义一堆你们不想做的事情。

Puh。这真是一个很难回答的问题。什么可以限定系统命令?到底是哪个GCC版本?从System32文件夹中删除“shutdown.exe”可以作为一个转折点?