Защита страницы Php только для задачи cron - PullRequest
1 голос
/ 20 февраля 2011

Я использую виртуальный хостинг Linux cpanel.

Использую http://aaa.com/script.php для очистки данных с другого сайта.

Часть PHP предназначена для скручивания вызова для чтения всего содержимого страницы, затем на странице выводит весь контент в виде html, а затем использует jquery scrapping & ajax call для вставки окончательных данных в mysql.

(Я решил пойти на утилизацию на стороне клиента jquery, потому что страница с html в записку довольно сложна, и ее трудно достичь с помощью phpsimpledom и regex.)

Я хочу, чтобы эта страница перестала выводитьhtml, когда он есть - не открываю я как тестировщик - не открывает локальная задача cpanel cron.

Поэтому я поставил exit(); в верхние несколько строк.Если обнаружен законный, то продолжит остальные html-выходы внизу, иначе просто выйдите и покажите пустую страницу.

Теперь проблема безопасности, какой для меня возможный и лучший способ убедиться, что другиепосетители / боты на этой странице увидят пустую страницу.

Если я поставлю пароль для задачи cron, я не думаю, что она может работать правильно?Потому что в файле script.php я удаляю данные, поэтому, если владелец веб-сайта увидит журнал рефералов посетителей, он сможет увидеть полный URL-адрес, включая? Пароль = 12345, не так ли.

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

Если я поставлюмой скрипт за пределами public_html, например /usr/local/bin/php -f /home/mysite/script Я не думаю, что он будет работать для jquery, он чисто для php, не так ли?

Что еще я могу сделать ??

Ответы [ 2 ]

2 голосов
/ 20 февраля 2011

Вы можете настроить виртуальный хост apache, чтобы разрешить доступ только с вашего ip. Любой другой получит страницу 404 не найден или отказано в разрешении 403 в зависимости от того, как вы ее настроили.

Вот образец

Order Deny,Allow
Deny from all
Allow from 127.0.0.1

Использование 127.0.0.1 сообщает apache, что запросы от самого себя (т. Е. Cron) должны работать, но никто другой.

Вы узнаете больше, прочитав документы apache2

0 голосов
/ 21 февраля 2011

Пароли в строке запроса - плохая идея. Вы можете проверить действительные IP-адреса в начале вашего файла PHP. Это позволит любому запросу с набора IP-адресов получить доступ к проанализированному выводу jQuery Всем другим IP-адресам будет отказано в доступе.

$allowedIps = array('127.0.0.1','::1');
if(!in_array($_SERVER['REMOTE_ADDR'],$allowedIps)){
    echo 'No jQuery for you';
}else{
    echo 'jQuery goodness to follow...';
}
...