1

我的 Web 应用程序中有一些与服务器操作系统交互的功能。我编写了一个 bash 脚本,并且能够在我的应用程序中运行它。

但是,脚本的某些功能需要超级用户权限。

安全运行此脚本的最明智的方法是什么?它从 Web 表单中传递参数的,但应该只能由经过身份验证的用户调用,我相信这些用户不会对其进行 haxxor 处理。

4

2 回答 2

4

无论您采用哪种方式,都可能非常危险。您是否可以编写一个具有所需权限的本地守护程序,并使用一些消息总线来产生/消耗要由该超级用户需要的组件处理的事件?

这样,您可以仔细验证消息的内容,并减少被利用的可能性。.

于 2010-06-08T06:51:58.423 回答
2

安全运行此脚本的最明智的方法是什么?

如果您真的关心安全性,请要求 Web 客户端提供密码并使用 ssh 密钥。 然后运行脚本下ssh-agent,并为敏感部分做ssh root@localhost command...。您可能只想为此目的创建 ssh 密钥对,因为我不会在 Web 表单中输入一个普通的 SSH 密码(无论如何,谁信任您的 Web 表单?)。

如果您不想要这么多的安全性,并且如果您真的、真的相信您的 Web 表单可以正确地验证其用户并且没有任何错误,那么您可以决定信任 Web 服务器来运行您需要的命令。(我不会。)在这种情况下,我将使用该/etc/sudoers文件来允许 Web 服务器在不提供密码的情况下运行感兴趣的命令。然后你的脚本应该sudo用来运行这些命令。

于 2010-06-08T14:20:03.903 回答