У меня есть файл, расположенный на моем сервере, и я хочу получить удаленный доступ к этому файлу с другого сервера и выполнить исходный код файла из другого файла PHP, расположенного на другом сервере.

Я просмотрел «File_get_contents», однако он получает только содержимое, отображаемое этим файлом PHP, как показано ниже.

Итак, возможно ли, чтобы файл PHP с внешнего сервера читал исходный код файла PHP, расположенного на моем сервере, и выполнял команды на внешнем сервере?

php
0
Annon 28 Мар 2011 в 22:13

1 ответ

Вы можете использовать для исходного файла расширение, отличное от .php, а затем использовать file_get_contents (или аналогичный) для извлечения содержимого.

Если не использовать расширения php, PHP не сможет анализировать его как код и вместо этого просто отправит его в виде текста.

Однако это также сделает исходный код доступным для чтения любому, кто перейдет к файлу в браузере, а также представит возможную серьезную уязвимость. Вы должны выяснить, почему это необходимо и можно ли этого как-то избежать (возможно, вызвав файл на другом сервере с параметрами GET или POST).

1
ssube 28 Мар 2011 в 22:18
Я поддерживаю это. Чтобы на самом деле включить файл, вам нужно включить fopen_wrappers, а затем вы просто require(), require_once(), include() или include_once(), как если бы вы использовали локальный файл, но передавая URL-адрес в качестве аргумента.
 – 
Raphael Schweikert
28 Мар 2011 в 22:22
Schweikert Если у вас есть пример на эту или любую другую информацию, я был бы признателен.
 – 
Annon
28 Мар 2011 в 22:27
require("http://yourdomain/yourfile.php") - это общая идея. Что вы пытаетесь сделать и почему этот файл должен быть на другом сервере?
 – 
ssube
28 Мар 2011 в 23:23
1
Чтобы использовать require и его варианты для этого, вам необходимо включить как allow_url_include, так и allow_url_fopen в файле конфигурации php.ini. Обратите внимание, что эти настройки нельзя установить в файле .htaccess из соображений безопасности. См. раздел Конфигурация среды выполнения файловой системы PHP.
 – 
Raphael Schweikert
28 Мар 2011 в 23:30