阻止用户访问我的 cron 作业脚本

Posted

技术标签:

【中文标题】阻止用户访问我的 cron 作业脚本【英文标题】:Block users from accessing my cron job script 【发布时间】:2017-04-11 06:45:46 【问题描述】:

我在一个名为 cron.php 的 php 文件中有一个 cron 作业脚本,它每 3 小时运行一次。由于它保存在公共 html 文件夹中,因此任何用户都可以访问它。但我不想那样。我正在寻找一个可以确保只有我的服务器可以访问该文件并运行该脚本的过程。没有用户能够访问该文件。

为此,我需要做什么?

【问题讨论】:

【参考方案1】:

最好的解决方案是将文件存储在 webroot 之外。

另一种选择是在您通过 cron 运行脚本时传入一个额外的参数,并检查该参数是否存在(通过 Web 请求访问时不会存在)。有关在 PHP 中使用命令行参数的示例,请参阅 http://php.net/manual/en/function.getopt.php

【讨论】:

“webroot 之外”是否意味着 public_html 文件夹之外?你能举个例子在哪里放置 cron 脚本吗? 没错,把它放在 public_html 文件夹之外。它应该去哪里取决于您的设置,但即使是一个目录(因此与 public_html 处于同一级别)也应该停止网络访问。

以上是关于阻止用户访问我的 cron 作业脚本的主要内容,如果未能解决你的问题,请参考以下文章

阻止公共访问CodeIgniter中的CRON作业脚本

使用 cron 作业“访问页面”

阻止通过 http 直接访问文件,但允许 php 脚本访问

如何使用 php 脚本创建 cron 作业?

尽管用户角色,AWS Batch 作业在 S3 上被拒绝访问

如何以用户而不是 root 用户身份运行 cron 作业 [关闭]