Php MVC和安全CRON作业

Php MVC和安全CRON作业,php,model-view-controller,cron,Php,Model View Controller,Cron,我有一个PHP应用程序,它遵循自主开发的MVC设计。我想使用我的控制器来处理CRON作业。然而,我也希望我的CRON工作是安全的。保护CRON作业免受恶意公共使用的可行方法是将参数传递给我的控制器中的方法(位于webroot内部),以检查保存在我的webroot外部的config.php文件中的CRON_密码吗 例如,如果CRON作业调用: my_domain.com/back-up-database/$password 然后我可以检查CRON_密码是否正确: public funct

我有一个PHP应用程序,它遵循自主开发的MVC设计。我想使用我的控制器来处理CRON作业。然而,我也希望我的CRON工作是安全的。保护CRON作业免受恶意公共使用的可行方法是将参数传递给我的控制器中的方法(位于webroot内部),以检查保存在我的webroot外部的config.php文件中的CRON_密码吗

例如,如果CRON作业调用:

my_domain.com/back-up-database/$password
然后我可以检查CRON_密码是否正确:

    public function backUpDatabase($password){
    if ($password !== CRON_PASSWORD) {
         return false;
    } else {
        //back the thing up
    }
    }

在URL中输入密码是一种糟糕的安全做法,因为URL通常会被记录,而且还有许多其他不必要的潜在安全副作用

如果从主机调用脚本,最好在MVC应用程序中创建CLI服务。只能通过在本地主机的命令行上运行php来调用此服务。因此,它绕过了通常配置为服务web流量的web服务器,并且它与Cron 100%兼容,因为它也是一种CLI服务

请参见Zend的MVC框架中的一个示例:

第二种选择是使用支持机器到机器身份验证的身份验证方法,因为这里真正讨论的是集成两个应用程序(服务器的cron守护程序和MVC应用程序)。OAuth2就是一个很好的例子


我没有想过以这种方式使用OAuth2。然而,我想知道是否有更简单的方法来做到这一点?