首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >允许服务器运行cron作业,但通过.htacess阻止对正常用户的访问

问允许服务器运行cron作业,但通过.htacess阻止对正常用户的访问
EN

Stack Overflow用户
提问于 2014-08-05 18:25:54
回答 2查看 7.5K关注 0票数 4

具有位于普通目录中的文件夹中的cron作业。

除了运行cron作业的服务器外,我不允许其他任何人访问该文件。

我试过:

代码语言:javascript
复制
order deny,allow
deny from all
allow from 127.0.0.1

但没有运气。我已经深入到将cron作业放到web根目录之外的根源,但是无论我和我的主机尝试了什么,我都无法让它运行。

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2014-08-05 18:32:42

这里有两件事:(a)让cron作业运行,(b)访问限制。

克隆约伯

新的crontab条目:

代码语言:javascript
复制
*/10 * * * * /usr/bin/php /somewhere/www/cronjob.php

在cronjob.php上设置正确的许可:

  • 执行标志:chmod +x /somewhere/www/cronjob.php

访问限制

一般来说,将cron作业的脚本文件放置在www路径之外是一个很好的实践。

如果您确实需要将它们放置在www中,那么您可以使用访问限制来保护它们。对于webserver,这将通过.htaccess工作,如下所示:

.htaccess内部/somewhere/www/

代码语言:javascript
复制
<Files "cronjob.php">
Order Allow,Deny
Deny from all
</Files>

这可以保护文件cronjob.php不受外部访问,但允许cron执行文件。

如果没有效果,请按照我的逐步指南:https://stackoverflow.com/a/22744360/1163786

票数 4
EN

Stack Overflow用户

发布于 2019-05-03 12:48:49

可以通过在crontab文件中设置环境来限制访问。

SCRIPT_RUN_ENV=mycronenv

并验证函数中的环境字符串:

代码语言:javascript
复制
if (get_env('SCRIPT_RUN_ENV') != 'mycronenv') {
    die('Access denied');
}

或者您可以通过IP限制访问。

代码语言:javascript
复制
if( $_SERVER['REMOTE_ADDR'] != $_SERVER['SERVER_ADDR'] || $_SERVER['REMOTE_ADDR'] != "127.0.0.1" ){
    die('Access denied!');
}

您可以通过.htaccess设置脚本文件的权限,如下所示:

代码语言:javascript
复制
Order deny,allow
Allow from THIS_SERVER_IP
Allow from 127.0.0.1
Deny from all
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25145836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档