Allow_url_include есть способ разрешить включение только одного URL-адреса

allow_url_include – это способ разрешить allow_url_include только одного URL-адреса. возможно, с Htaccess или PHP?

Нет. Чтобы получить содержимое URL-адреса, используйте file_get_contents() . Затем, чтобы отправить результат обратно в ожидающий браузер, просто используйте echo() .

 $contents = file_get_contents('http://www.example.com/'); echo( $contents ); 

Вышеизложенное требует, чтобы вы установили config allow_url_fopen=1 (который уже установлен по умолчанию).


Если бы вы использовали include , вместо подхода, который я показал выше, было бы одно существенное различие: include также выполняет любой PHP-код, который он находит внутри извлеченного документа. В общем, это действительно опасно, если вы не знаете, что вы контролируете 100% содержимого включенного документа.

Тем не менее: если вы хотите, чтобы код работал точно так же, как include , вы можете сделать что-то вроде следующего (что безопаснее, потому что он извлекает только один URL-адрес, и он не требует разрешения allow_url_include ).

 $contents = file_get_contents('http://www.example.com/'); eval('?>'.$contents); 

Если вы сделаете это, убедитесь, что вы контролируете полное содержимое удаленного URL-адреса . Если кто-то другой контролирует этот файл, они смогут выполнить произвольный код на вашем сервере. Не позволяйте этому случиться.

Ну, зачем вам это нужно, у вас есть контроль над кодом, вы можете просто использовать один URL-адрес во время включения. Кроме того, использование allow_url_include очень опасно. Если вы все еще хотите использовать, вы можете сделать это таким образом.

Сделать пользовательскую функцию (примерный код)

 function url_include($url){ //now check if $url is the one you want to be included if($url=="http://www.mysite.com/file.php"){ include($url); }else{ //show error or something. } } 

теперь используйте этот url_include("http://www.mysite.com/file.php"); на вашей странице, чтобы включить URL.

Надеюсь это поможет