Pergunta

Eu tenho um script PHP do Cron Job que eu apenas configurei há pouco tempo. No entanto, notei que o arquivo PHP foi executado (sem a ativação do trabalho Cron). Parece que aconteceu quando um Google Bot rastejou o arquivo, porque notei que o mecanismo a seguir visitou minha página:

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

Minha pergunta é:

1) É possível que, ao rastejar minha página da web, ela poderia ter executado o script?

2) Como posso "ocultar" o arquivo cron do Google?

3) Seria inteligente colocar esse arquivo em outro lugar que não o meu diretório public_html?

Muito Obrigado!

Foi útil?

Solução

1) Claro que é

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

3) Sim. Mas se, por algum motivo, você depender de chamá -lo por meio de um daemon HTTP, você pode usar um pequeno truque.

por exemplo. Primeira linha de código:

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

em seu crontab:

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

Outras dicas

1) Se o arquivo for colocado em um diretório da web público, então sim, ele poderá ser executado pelo GoogleBot (ou qualquer outro visitante)

2) Você pode adicionar uma cláusula de não permitir em seu robots.txt. Qualquer usuário regular ainda pode executá -lo visitando se você fizer isso.

3) Sim.

Você pode usar também php-cli. Defina se for Cron Job:

define('_DOING_CRON_', true);

Então no arquivo php:

if(_DOING_CRON_ && php_sapi_name() != 'cli'){
    die("You cannot get here: this is only cron task.");
}

A resposta de Runifus acima resolveu para mim, no entanto, a linha de comando de Job Cron não funciona com o? No URL, para passar na fúria como aprendi aqui: Jobs Cron chamando um script PHP com variáveis

Deve ser assim:

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

Além disso, a condição PHP está faltando um parêntese final

if(!isset($_GET['execute']))  exit;
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top