我知道这是不好的做法,实际上在没有完全验证的情况下允许任意执行代码非常危险,依此类推。
真的。
但是假设您的任务是编写一个允许将虚拟主机添加到 apache 配置的小应用程序。
与第一点无关。完全不相关。确实,为什么第一点甚至在那里?
添加虚拟主机是一个简单的脚本。您只需编写脚本并使其工作。它需要非凡的特权。但这不是“任意执行代码”。它将被“完全验证”(无论这意味着什么。你写它。你验证它。)
对于“网络应用程序”来说,这不是一个好的选择。对于守护进程来说,这也不是一个好的选择。实际上,很难看出“将虚拟主机添加到 apache 配置”和“控制守护进程的 Web 应用程序”之间的联系。
它只是一个只更新文件的脚本。没什么特别的。它需要特权,因此只有少数人可以运行它。那里也没什么特别的。使用sudo
.
您是否让您的代码以完全权限执行,
明显地。如果没有某些权限,该脚本无法更新虚拟主机。
除非“您的代码”不是指更新虚拟主机的脚本。如果您指的是其他内容,例如允许某人运行更新虚拟主机的脚本的网页。在这种情况下,您已将脚本与运行该脚本的 Web 应用程序混为一谈。
您是否将未来的变量写入数据库并有一个 cron 作业(具有完全权限)执行一个脚本,该脚本从数据库中提取变量并将它们放入模板配置文件等。
当然。人们这样做。看起来非常复杂。
使用celery
而不是滚动您自己的后台处理器。 http://ask.github.com/celery/getting-started/introduction.html