PHP - 关注通过网站

时间:2018-01-20 16:30:07

标签: php linux

我正在开发一个游戏面板,我用PHP和BASH构建它。因此,当按下按钮时,Web面板通过运行bash脚本来控制游戏服务器。到现在为止还挺好。当我需要运行bash脚本时出现问题,因为运行它们的用户需要sudo权限,否则脚本会出现意外行为:

  1. 我应该创建一个新用户并赋予它sudo权限,然后通过SSH(通过PHP)登录服务器?如果是这样,我怎么能安全地存储登录凭证,所以如果黑客攻击我的网站,他将无法找到它们?

  2. 我应该为特定脚本提供www-data sudo权限吗?这是一种危险的方法吗?

  3. 是否有更好,更安全的方式从网页运行bash脚本?

  4. 我是一名新手PHP开发人员,我的第一个项目是在Ubuntu服务器上运行的游戏面板。请怜悯。 :)

2 个答案:

答案 0 :(得分:2)

我不会直接从PHP运行任何bash脚本,而是通过使用消息队列来解耦这两个脚本。

让PHP脚本向交换机发送消息并将操作标记为“正在进行中”。然后让bash脚本作为队列的使用者运行,该队列接收消息,处理它并运行必要的脚本。最后将消息传递给PHP使用的另一个队列,并将操作状态更新为“已完成”或“失败”,具体取决于结果。这不是一个同步过程,但它是处理它的更安全的方法。

建议阅读:

答案 1 :(得分:1)

您在这里尝试做的事情非常危险,如果您可以在网页中执行bash脚本,那么您将被黑客入侵,黑客将拥有对您计算机的完全访问权限。

您需要做什么取决于您的项目是什么,但基本上您想要设置某种形式的服务器,它将运行bash命令并让您的网页调用该服务器。这不是直截了当的。