我有一个小编码项目。
我想通过网络界面管理我的专用服务器(基于debian)。
我想管理我的服务,游戏服务器等。 我已经有了使用ssh连接控制它们的脚本,但是对我自己的经理进行编码是一个很好的练习。
我的问题是如何使用php制作shell命令。我知道有这样做的功能,但是,我读到允许www-data帐户可以安全,所以有没有办法安全地做到这一点?
(当然,我的程序都是使用不同的帐户启动的。)
此外,我希望界面可以轻松实现(例如,无需进行大量更改即可添加服务)。
非常感谢。
答案 0 :(得分:1)
问题非常笼统。
在php中你有 exec() shell_exec() system()和 passthru()只是谷歌对于他们的详细信息。
他们所有的共同点是他们执行二进制文件(假定Apache(你在Apache上吗?))有权这样做。
为了避免安全问题,您必须确定在任何情况/情境/上下文中执行的命令以及传递的参数。
如果通过调用之前的代码100%正确检查和验证它们,则代码是安全的。
您应该关心的第一件事是永远不要让客户端(使用GET或POST请求与服务器通信)执行任意命令或传递任意参数。
为了增加安全性,保护来自用户/组的敏感文件和目录正在运行
-OR -
使用对敏感文件/目录无害的用户组运行Apache(例如,不以root身份运行...)
希望这会有所帮助......