Могу ли я использовать папку include на одном веб-сайте и настроить «доверенные домены / IP-адреса», которым разрешен доступ к файлам в этой папке (все остальные домены / IP-адреса ограничены)? Все сайты находятся на одном сервере виртуального хостинга, глобальный сайт имеет выделенный IP-адрес, а остальные имеют другой IP-адрес.
Это слишком небезопасно для включения PHP в разные домены?
Если этот сценарий невозможно настроить, есть ли альтернативы для глобального и относительно безопасного совместного использования файлов на стороне сервера?
Изменить: сервер - Apache
При включении файлов между доменами выдает ошибку:
Warning: include(/home/user1/public_html/file.php) [function.include]:
failed to open stream: Permission denied in /home/user2/public_html/file.php
Если все веб-сайты находятся на общем сервере, вы можете сделать папку доступной для чтения, и они могут включать ее таким образом. Скажите / blah / globalphpshare /, и пользователь homer хочет использовать greet.php, он может просто сделать include("/blah/globalphpshare/greet.php");
Если ваш хост включает защиту root в apache, путь к файловой системе не будет работать, но вы все равно можете включить следующее:
<?php include('http://www.somedomain.com/?query=string'); ?>
Основные отличия заключаются в том, что включенный файл видит только переменные, которые вы передали ему в строке, а возвращается HTML-код, который php проанализировал из файла в исходном домене. В зависимости от того, что находится во включенном файле, это может быть нормально.