如何只允许 cron 在特定时间内在 PHP 文件上运行
我有一个 cron 作业,每天全天运行几次 (:00)。我怎样才能只允许PHP脚本在这段时间内运行?我不希望其他人能够运行我的脚本。我的想法是这样的:
if (date('i', time()) > 2 || date('i', time()) < 58) {
die;
}
有没有更好、更安全的方法?
I have a cron job that runs several times a day at full hours (:00). How can I only allow the PHP scripts to run during this time? I don't want someone else to be able to run my script. Here's what I thought of:
if (date('i', time()) > 2 || date('i', time()) < 58) {
die;
}
Are there better, more secure ways?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您将 php 脚本放在 Web 目录之外,则只有您 / cron 能够运行它,其他人都无法运行。
有多种方法可以从 cron 运行 php 脚本,例如添加这样的内容作为 php 脚本的第一行:
If you place your php script outside of your web directory, only you / cron will be able to run it and nobody else.
There are different ways to run a php script from cron, like for example adding something like this as the first line of your php script:
cron 作业通常以 root 用户身份运行。您可以使脚本只能由 root 执行和读取:
如果您不想使用 root,您还可以更改 crontab 中的命令以特殊用户身份运行脚本。
我认为我们可以假设您没有脚本位于可访问 Web 的位置。如果你这样做了,那就移动它。
The cron jobs are usually run as the root user. You could make your script executable and readable by root only:
You can also alter the command in the crontab to run the script as a special user if you do not want to use root..
I think we can assume that you do not have the script in a web accessible location. If you did then move it.