Google Bot 可以执行 PHP 脚本

发布于 2024-08-03 03:52:01 字数 370 浏览 9 评论 0原文

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

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

我的问题是:

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

2) 如何对 Google“隐藏”CRON 文件?

3)将此文件放在 public_html 目录之外的其他位置是否明智?

非常感谢!

I have a CRON job php script that I just set up not too long ago. However, I noticed that the PHP file executed (without the cron job activating). It appears that it happened when a Google Bot crawled the file, because I noticed that the following engine visited my page:

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

My question is:

1) Is it possible, that by crawling my webpage, it could have executed the script?

2) How can I "hide" the CRON file from Google?

3) Would it be smart to place this file in somewhere other than my public_html directory?

Many thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

绝影如岚 2024-08-10 03:52:01

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

1) of course it is

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

3) yes. but if for some reason you depend on calling it via a http daemon you can use a little trick.

eg. first line of code:

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

in your crontab:

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

岁月如刀 2024-08-10 03:52:01

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

2) 您可以在 robots.txt。如果您这样做,任何普通用户仍然可以通过访问来执行它。

3)是的。

1) If the file is placed in a public web directory, then yes, it could be executed by Googlebot (or any other visitor)

2) You could add a Disallow clause for it in your robots.txt. Any regular user can still go and execute it by visiting if you do this.

3) Yes.

乱世争霸 2024-08-10 03:52:01

您还可以使用 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.");
}

You can use also php-cli. Define if it is cron job:

define('_DOING_CRON_', true);

Then in php file:

if(_DOING_CRON_ && php_sapi_name() != 'cli'){
    die("You cannot get here: this is only cron task.");
}
帥小哥 2024-08-10 03:52:01

Runifus 上面的答案为我解决了这个问题,但是 Cron 作业命令行不适用于 ?在 url 中传递查询字符串,正如我在这里学到的: Cron Jobs 调用带变量的 PHP 脚本

应该是这样的:

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

php 条件也缺少右括号

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

Runifus' answer above solved it for me, however the Cron job command line does not work with the ? in the url to pass the querystring as I learnt here: Cron Jobs calling a PHP script with variables

It should be like so:

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

also the php condition is missing a closing parenthesis

if(!isset($_GET['execute']))  exit;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文