На сервере B поместите следующую строку в файл .htaccess
:
AddType text/plain .php
Вам необходим код , который будет выведен сервером B для чтения сервером A.В настоящий момент он обрабатывается на сервере A.
Это сделает ваш код видимым для общественности. Это также предотвратит выполнение любого другого PHP в этомкаталог.Вы можете использовать директиву <Files>
, чтобы она применялась только к определенным файлам, но она всегда будет доступна для общественности.Там есть способы ограничить доступ, как в PHP, так и в .htaccess
.
Если вы не хотите, чтобы это происходило, есть способы сделать это тоже, но они немного сложнее.
РЕДАКТИРОВАТЬ , чтобы ответить на запрос
Если вы все еще хотите выполнять PHP на сервере B и выборочно включать файлы, я бы предложил создать новый файл includer.php
с содержанием, подобным следующему:
<?php
if ('my-secret-key' == $_GET['auth']) {
if (is_readable($_GET['file'])) {
header('Content-type: text/plain');
echo file_get_contents($_GET['file']);
} else {
header('Status: 404 Not found');
header('Content-type: text/plain');
die('<?php /* File not found */ ?>');
}
} else {
header('Status: 403 Forbidden');
header('Content-type: text/plain');
die('You do not have permission to access this page.');
}
А затем на вашем сервере A:
include ('http://example.com/includer.php?auth=my-secret-key&file=Test.php');
Вы также должны посмотреть на использование basename()
на $_GET['file']
на сервере B, если это возможно, для повышения безопасности и hash()
с помощью параметра auth
.