是否有(相对)安全的方式从 Web 运行 CLI 命令?

Kev*_*Kev 5 command-line php

自从我开始编写 LAMP 应用程序以来,我想为我的盒子开发一个管理控制面板。(出于娱乐和教育目的,否则我会使用市场上已有的东西)

但总是阻止我的是我总是听说 exec() 函数(我知道实现这一目标的唯一方法)是邪恶的......你知道:“不要使用它们”,“这是糟糕的编码”等。

为此,我从未听说过更安全的替代方案,所以我的问题是:

有没有?

在具有密码保护的文档根目录的专用 Web 服务器中运行该应用程序还不够吗?

嗯,这是我的疑问。

ter*_*don 1

据我所知(我并不是真正的程序员,所以要持保留态度),exec()调用根本不是邪恶的。只是它们分叉了一个新进程,并且由于您正在调用系统函数而具有很高的开销。一般来说,人们建议您在编写的任何程序/脚本中在内部执行操作,并避免像exec().

但是,如果您的目标是在系统上执行命令,则没有这样的调用就无法做到这一点。当然,存在安全风险,允许随机用户在您的服务器上执行任意命令会带来麻烦。但是,如果对该服务器的访问受到严格限制,您应该能够安全地进行访问。

无论如何,主要结论是,exec()函数本质上并不是坏事,它们只是比在内部做某事效率低。