Intereting Posts
Комбинации, расположения и перестановки в PHP Как конвертировать HTML-код или данные, содержащие (тег изображения и некоторый текст) в изображение для загрузки Параметрированный запрос с несколькими необязательными условиями поиска PHP, HTML: Отправить форму автоматически Как проверить определенные константы в PHP? Заменить текст в скобках так называемой переменной в PHP Проблема различных версий PHP У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с '' '') 'в строке 2 Вставить переменную php в href Использование пути к элементу массива извлечь первые 5 и последние 5 символов из строки, используя php? Как я могу отправить несколько элементов через кнопку «Купить сейчас» в Paypal Предварительно упакованный Redbean извлекает только одну (последнюю) строку Установка драйверов phpMongo в windows Как вызвать функцию AJAX на теге привязки?

PHP & cron: проблемы безопасности

Какой лучший способ гарантировать, что только CRON выполняет PHP-скрипты, а не кто-то другой, кто наткнулся на ваши php-скрипты.

Я думал о пароле Variable …. но это законная команда CRON? :

/usr/local/bin/php -f /home/mysite/public_html/dir/script?password=12345 

Таким образом, люди не могут выполнять одни и те же команды при посещении скрипта PHP через HTTP (если только они не знают пароль)

Благодарю.

Вы должны хранить этот файл вне public_html

 /usr/local/bin/php -f /home/mysite/script // is secure from public access 

Предположим, что если вы не хотите, чтобы кто-нибудь запускал файл через http, тогда установите cron с помощью команды php, как вы делаете, и добавьте htacess в папку cron, чтобы заблокировать HTTP-запрос в папку, добавив

отказать всем в htacess

Предположим, что если u хочет, чтобы папка cron была защищена паролем, это можно сделать, как указано в URl

http://www.elated.com/articles/password-protecting-your-pages-with-htaccess/

Не помещайте скрипт в свой каталог public_html (или в любом месте под вашим корнем), если вам нужно выполнить его только из cron. Это действительно настолько просто.

Вы можете отправить params в файл PHP через командную строку. Просто не так, как вы думаете.

http://www.php.net/manual/en/reserved.variables.argc.php

Тем не менее, вы также хотите сохранить это в общедоступной папке html, как говорят другие. Поэтому вы НЕ МОЖЕТЕ заниматься серфингом. PHP, запускаемый из командной строки, не обязательно должен находиться в какой-либо папке просмотра веб-сервера.

Или вы можете заблокировать выполнение по IP-адресу:

($ _SERVER ['REMOTE_ADDR'] == "127.0.0.1") или умереть («НЕТ ДОСТУПА»);

Наличие пароля может работать, но:

  • Написание пароля в вашем crontab – плохая идея, потому что другие локальные пользователи могут прочитать его
  • Ваш синтаксис не будет работать (он попытается запустить скрипт «password = 12345». Параметры не могут быть названы в сценарии оболочки, поэтому вам нужно будет запустить «script.php 12345»,

Допустимым решением будет проверка вашего PHP-скрипта, что текущая среда похожа на ту, которая предоставляется cron при запуске команд. Специфические переменные среды Cron могут помочь вам убедиться, что ваш скрипт запущен fby cron, а не пользователем.