PHP обнаруживает человека в браузере - PullRequest
2 голосов
/ 14 ноября 2011

Я хочу запретить пользователям запускать мое задание cron вручную.Помимо использования непредсказуемого имени файла, я хочу иметь какую-то проверку в коде.

Очевидно, что использование любых заголовков на стороне клиента - пустая трата времени, поэтому я подумал, что самый простой способ обойти это - обнаружить присутствие * 1003.* который, насколько я знаю, не установлен в CLI.

Есть ли лучшие способы сделать это?

Ответы [ 4 ]

4 голосов
/ 14 ноября 2011

Посмотрите на php_sapi_name.Он возвращает тип интерфейса между веб-сервером и PHP.

Пример:

<?php

if(php_sapi_name() == 'cli') {
  // CLI
}
else {
  // HTTP
}

Для получения дополнительной информации и дополнительных примеров смотрите http://www.electrictoolbox.com/determine-php-run-via-http-or-cli/.

3 голосов
/ 14 ноября 2011

в вашем .htaccess

Options -Indexes

order allow deny
deny from all
allow from YOUR SERVER IP ADDRESS ONLY
2 голосов
/ 14 ноября 2011

Мои задания cron находятся в папке, защищенной паролем с помощью htpasswd .Вы можете установить простой пароль и быть уверенным, что никто не потеряет свое время, пытаясь получить к нему доступ.Я не использую какие-либо методы, основанные на IP, потому что это зависимость от сервера, которую я не хочу иметь.

2 голосов
/ 14 ноября 2011

Проверьте IP-адрес, если его локальный или ip сервера, затем запустите его, в противном случае верните.

$ip = getenv('REMOTE_ADDR');
...