1

我有一个小编码项目。

我想使用 Web 界面管理我的专用服务器(基于 debian)。

我想管理例如我的服务、我的游戏服务器等。我已经有脚本可以通过 ssh 连接来控制它们,但是编写我自己的管理器是一个很好的练习。

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

此外,我希望界面易于可持续(例如无需进行大量更改即可添加服务)。

非常感谢。

4

1 回答 1

1

这个问题很笼统。

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

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

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

如果调用之前的代码 100% 正确地检查和验证了它们,那么代码是安全的。

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

为了提高安全性,保护 Apache 正在运行的用户/组的敏感文件和目录

-或者-

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

希望这可以帮助...

于 2013-05-27T20:17:24.660 回答