【问题标题】:Writing a perl cgi applications which runs as root编写一个以 root 身份运行的 perl cgi 应用程序
【发布时间】:2012-07-31 04:21:16
【问题描述】:

我正在编写一个 perl cgi 应用程序。在某些时候,此 cgi 应用程序需要以 root 身份运行才能访问和写入特定文件。我想知道我应该如何做这件事以及我在做这件事时应该采取的安全预防措施。

【问题讨论】:

    标签: perl cgi


    【解决方案1】:

    你几乎不应该。

    如果您无法避免,请创建一小段简单的代码,使用 setuid root 运行,只执行该任务,仅此而已,或者使用 sudo 或类似的代码来运行执行此操作的脚本。

    为该文件提供适当的权限,以便您的网络用户可以对其进行写入(如果没有必要,不一定要从中读取)将是一个更好的选择。

    【讨论】:

    • +1 表示“你不应该”。当然,OP 已经使用污点检查并将输入与非常严格的规则进行比较。从 shell 脚本的任何添加中清除 rm -rf / 是一个好的开始;-) 默认失败,只有在满足特定条件时才进行写入。
    • 您建议使用 system("echo pass | sudo -s mine.pl params") 来调用它还是有更安全的方法?
    • 没有密码!为您的网络用户和该特定脚本配置没有密码的 sudo。确保在将任何参数传递给脚本之前对其进行严格验证。
    【解决方案2】:

    如果可以的话,一定要尽量避免这样做。

    如果您的程序需要立即写入特权文件,请使用Mat's reply。 但是,您可以将内容写入其他地方并每五分钟运行一次 cron 作业(例如)以复制数据。

    【讨论】:

      猜你喜欢
      • 2014-05-14
      • 2010-09-15
      • 1970-01-01
      • 2011-04-20
      • 1970-01-01
      • 2014-09-16
      • 1970-01-01
      • 2010-09-08
      相关资源
      最近更新 更多