我的 Web 应用程序中有一些与服务器操作系统交互的功能。我编写了一个 bash 脚本,并且能够在我的应用程序中运行它。
但是,脚本的某些功能需要超级用户权限。
安全运行此脚本的最明智的方法是什么?它是从 Web 表单中传递参数的,但应该只能由经过身份验证的用户调用,我相信这些用户不会对其进行 haxxor 处理。
我的 Web 应用程序中有一些与服务器操作系统交互的功能。我编写了一个 bash 脚本,并且能够在我的应用程序中运行它。
但是,脚本的某些功能需要超级用户权限。
安全运行此脚本的最明智的方法是什么?它是从 Web 表单中传递参数的,但应该只能由经过身份验证的用户调用,我相信这些用户不会对其进行 haxxor 处理。
无论您采用哪种方式,都可能非常危险。您是否可以编写一个具有所需权限的本地守护程序,并使用一些消息总线来产生/消耗要由该超级用户需要的组件处理的事件?
这样,您可以仔细验证消息的内容,并减少被利用的可能性。.
安全运行此脚本的最明智的方法是什么?
如果您真的关心安全性,请要求 Web 客户端提供密码并使用 ssh 密钥。 然后运行脚本下ssh-agent
,并为敏感部分做ssh root@localhost command...
。您可能只想为此目的创建 ssh 密钥对,因为我不会在 Web 表单中输入一个普通的 SSH 密码(无论如何,谁信任您的 Web 表单?)。
如果您不想要这么多的安全性,并且如果您真的、真的相信您的 Web 表单可以正确地验证其用户并且没有任何错误,那么您可以决定信任 Web 服务器来运行您需要的命令。(我不会。)在这种情况下,我将使用该/etc/sudoers
文件来允许 Web 服务器在不提供密码的情况下运行感兴趣的命令。然后你的脚本应该sudo
用来运行这些命令。