阻止C程序中的系统命令

时间:2013-04-25 13:21:34

标签: php c system block permission-denied

我正在编译并执行在Windows XP Server上使用PHP系统命令的C程序。

如果C程序包含System("shutdown -a")之类的系统命令或任何系统命令,那么它会关闭我的系统。

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

这是我的代码。

PHP脚本包含 -

system(gcc code.c -o out);    system(out.exe);

IF C程序包含 -

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

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

2 个答案:

答案 0 :(得分:1)

Windows runas命令

您可以使用windows runas命令以特定用户身份运行命令。在该用户的配置文件中,设置列出的白名单。 https://superuser.com/questions/42537/is-there-any-sudo-command-for-windows

滚动您自己的命令白名单

在PHP或C中创建允许通过C程序运行的命令列表,如果该命令不在批准列表中,则拒绝该命令。或者你喜欢危险地生活,创建一个黑名单,并定义一些你不想运行的东西。

答案 1 :(得分:0)

好的,所以简单的答案是“不要以root身份运行”(那么用户只能访问他/她创建的文件,所以没有那么多的机会造成伤害)

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