【发布时间】:2011-05-02 13:11:59
【问题描述】:
我如何确保用户不能运行 PHP 脚本并且它只能作为 cron 作业的一部分运行?
【问题讨论】:
我如何确保用户不能运行 PHP 脚本并且它只能作为 cron 作业的一部分运行?
【问题讨论】:
您可以在 crontab 中设置环境变量。像IS_CRON=1 这样的行可以放在你的crontab 的开头,然后在你的php 程序中检查get_env("IS_CRON") == 1。
当然,您还应该使用文件权限,因为它们不容易被绕过。如果这是作为 root 的 cron 的一部分运行的,chown root:root yourscript.php 和 chown 700 yourscript.php。
正如 ircmaxell 所说,假设您不需要 root 权限来执行您正在做的事情,那么最好以 root 用户以外的用户身份运行。我只是在猜测你的设置。
【讨论】:
我建议在你的 crontab 中设置一个环境变量,然后在你的 PHP 脚本中检查它
【讨论】:
可能有很多方法可以做到这一点。在我的脑海中,我会说将它放在 root 拥有的目录中,并且只有 root 可以读取可能会接近实现您正在寻找的效果。
您是否正在寻找专门限制它的任何进程?如果是这样,请使用权限,使其对任何这些进程都不可读。
【讨论】:
让您的 PHP 脚本检查 $_SERVER['REMOTE_ADDR'] 是否为空,如果不是,则让脚本退出而不做任何进一步的操作。
【讨论】: