所以我需要创建一个每24小时运行一次的cron作业并发送一些电子邮件。我需要以某种方式执行它,只有服务器能够运行它,并且它需要在CodeIgniter中。
所以假设我在名为cron.php
的控制器中有它,我怎么做到只有服务器可以执行它。到目前为止,我已经考虑过在构造函数中添加这样的东西:
if($_SERVER['SERVER_ADDR'] != $SERVER['REMOTE_ADDR']){
//kill the script, do not send emails
}
所以我的问题是,这看起来太简单了,这些价值观能以某种方式被欺骗/操纵吗?这很难吗?
有没有更好的方法来解决这个问题(如果将其作为一个隐藏在公共网络根目录之外的独立程序的话?
答案 0 :(得分:2)
添加一些"安全性的方法"是通过实现执行脚本所需的一种API密钥。
你的cron会获取像
这样的网址https://server/.../cron.php?key=<random string here>
确保密钥保密。