Сайт взлома включенного файла PHP. Как я могу получить переменную из включенного файла, не включая весь скрипт на свой сайт?

Я веду сайт на WordPress. Я включил локальный PHP-скрипт, который подключается к локальной базе данных Geocode и определяет местоположение пользователей. Он отлично работает, даже когда я включаю его на свой сайт (я могу получить нужные мне переменные), но, похоже, остальная часть сайта не загружается. Как будто мне «требовался» несуществующий файл. Я не уверен, почему это происходит, тем более что я все еще могу повторить переменную до того, как сайт сломается.

Есть ли способ запустить этот скрипт и передать мне нужную мне переменную, не включая весь скрипт на сайт? Может быть, он как-то работает в фоновом режиме? Ваше руководство очень ценится!


person Kevin    schedule 30.03.2011    source источник
comment
Эм, вы включаете удаленный скрипт? Страшные вещи... Сейчас код может выглядеть безобидно, но...   -  person Wrikken    schedule 31.03.2011
comment
Нет, это локальный скрипт. Это PHP API из базы данных MaxMind.com GeoCode.   -  person Kevin    schedule 31.03.2011
comment
И я знаю, какой файл ломает сайт: geoip.inc. Я просто не могу понять, почему. Я могу опубликовать весь код здесь, но он длинный, около 500 строк.   -  person Kevin    schedule 31.03.2011
comment
Хорошо, тогда ваша формулировка сбила меня с толку :) Вы уверены, что это не просто проблема require против require_once? Выгрузку с чем-то вроде gearman всегда можно сделать, но я сомневаюсь, что здесь это необходимо.   -  person Wrikken    schedule 31.03.2011
comment
Что ж, я заменил все require_once на include. Казалось, это не имело никакого эффекта.   -  person Kevin    schedule 31.03.2011
comment
Получаете какие-либо ошибки или уведомления? Включите error_reporting, если это не так.   -  person drudge    schedule 31.03.2011
comment
Отчеты об ошибках включены, я не получаю никаких сообщений об ошибках.   -  person Kevin    schedule 31.03.2011
comment
Я занимаюсь этим уже пару часов. Скрипт отлично работает, когда он стоит сам по себе. Когда я включаю его в WordPress, он все еще работает нормально, но сайт ломается.   -  person Kevin    schedule 31.03.2011


Ответы (1)


Вы должны использовать curl для безопасного получения содержимого, а затем анализировать его для получения необходимых данных. Если вы включите его напрямую, вы уязвимы для ряда атак безопасности, и выполнение вашего скрипта может остановиться, как сейчас.

person Wes    schedule 30.03.2011
comment
Спасибо, но извините за путаницу; Я не пытаюсь включить внешний скрипт. Это местное. Кажется, что мой сайт WordPress ломается, когда я пытаюсь включить его. - person Kevin; 31.03.2011
comment
затем просто откройте файл и прочитайте его содержимое. include выполнит файл в рамках скрипта, который его включил, что опасно. Затем вы можете проанализировать результаты и определить любую переменную, которая вам нравится, со значением. - person Wes; 31.03.2011