1

我有一个不久前刚刚设置的 CRON 作业 php 脚本。但是,我注意到 PHP 文件已执行(没有激活 cron 作业)。似乎是在 Google Bot 抓取文件时发生的,因为我注意到以下引擎访问了我的页面:

http://www.google.com/bot.html

我的问题是:

1)是否有可能通过抓取我的网页,它可以执行脚本?

2) 我怎样才能从谷歌“隐藏” CRON 文件?

3) 将此文件放在我的 public_html 目录以外的其他地方是否明智?

非常感谢!

4

4 回答 4

2

1)当然是

2) 见 robots.txt ( http://www.searchtools.com/robots/robots-txt.html )

3) 是的。但是如果由于某种原因你依赖于通过 http 守护进程调用它,你可以使用一个小技巧。

例如。第一行代码:

if(!isset($_GET['execute'])
 exit;

在你的 crontab 中:

http://server.tld/file.php?execute=1

于 2009-09-02T00:02:10.377 回答
1

1)如果文件被放置在公共网络目录中,那么是的,它可以由 Googlebot(或任何其他访问者)执行

2)您可以在robots.txt中为其添加 Disallow 子句。如果您这样做,任何普通用户仍然可以通过访问来执行它。

3) 是的。

于 2009-09-02T00:03:14.433 回答
0

Runifus 上面的回答为我解决了这个问题,但是 Cron 作业命令行不适用于 ? 在 url 中传递查询字符串,正如我在这里学到的:Cron Jobs calls a PHP script with variables

它应该是这样的:

http://server.tld/file.php execute=1

php条件也缺少右括号

if(!isset($_GET['execute']))  exit;
于 2016-11-28T09:58:54.183 回答
0

您也可以使用 php-cli。定义它是否是 cron 作业:

define('_DOING_CRON_', true);

然后在php文件中:

if(_DOING_CRON_ && php_sapi_name() != 'cli'){
    die("You cannot get here: this is only cron task.");
}
于 2016-10-22T07:24:50.620 回答