用php安全shell调用

时间:2013-05-27 20:00:33

标签: php shell

我有一个小编码项目。

我想通过网络界面管理我的专用服务器(基于debian)。

我想管理我的服务,游戏服务器等。 我已经有了使用ssh连接控制它们的脚本,但是对我自己的经理进行编码是一个很好的练习。

我的问题是如何使用php制作shell命令。我知道有这样做的功能,但是,我读到允许www-data帐户可以安全,所以有没有办法安全地做到这一点?
(当然,我的程序都是使用不同的帐户启动的。)

此外,我希望界面可以轻松实现(例如,无需进行大量更改即可添加服务)。

非常感谢。

1 个答案:

答案 0 :(得分:1)

问题非常笼统。

在php中你有 exec() shell_exec() system() passthru()只是谷歌对于他们的详细信息。

他们所有的共同点是他们执行二进制文件(假定Apache(你在Apache上吗?))有权这样做。

为了避免安全问题,您必须确定在任何情况/情境/上下文中执行的命令以及传递的参数。

如果通过调用之前的代码100%正确检查和验证它​​们,则代码是安全的。

您应该关心的第一件事是永远不要让客户端(使用GET或POST请求与服务器通信)执行任意命令或传递任意参数。

为了增加安全性,保护来自用户/组的敏感文件和目录正在运行

-OR -

使用对敏感文件/目录无害的用户组运行Apache(例如,不以root身份运行...)

希望这会有所帮助......