2015-05-21 3 views
0

Итак, я делаю базовое программное обеспечение PHP и имею конфигурационный файл. Файл содержит только информацию о базе данных, нет паролей пользователей и т. Д. Однако я объявляю переменные как обычно ($ test = «test»;), и задавался вопросом, может ли кто-то использовать require/include для получения переменных? Я думаю, что они не смогут получить доступ к переменным с помощью file_get_contents(); из-за того, как работает PHP. Но я не уверен в требовании/включении. Очевидно, вы можете сделать это на местном уровне, но как насчет с других сайтов?Может ли другой сайт использовать мой PHP-скрипт извне?

Пример очистить вещи:

http://example.com/config.php

  • $ DB_HOST
  • $ db_user
  • $ db_pass
  • $ db_base

Теперь http://anotherexample.com/somepage.php бы y быть в состоянии использовать require/include для извлечения PHP-скрипта из example.com и затем повторять переменные?

Спасибо!

+1

нет, если ваш сервер плохо настроен. ваш сервер будет ВЫПОЛНИТ сценарий, и единственное, что получит аутсайдер, - это OUTPUT вашего сценария. например перейдите на ЛЮБОЙ php-страницу в Интернете, сделайте источник просмотра - вы не увидите исходный код php, вы увидите только html, который создал php. –

+0

А, спасибо. Я знаю, что PHP работает на сервере, а не на клиенте, но я не самый продвинутый человек на PHP и хочу проверить, что у меня не было никаких уязвимостей безопасности: P – nfell2009

+1

, конечно, это не говорит о том, что ваш сервер не мог " t утечка источника. например вы испортите настройку файла .conf и отключите php, теперь ваш сервер отправит исходный источник .php, так как он не знает, как его выполнить. вообще говоря, вы, вероятно, ДОЛЖНЫ поместить чувствительные вещи, такие как переменные соединения db, в файлы, которые хранятся вне вашего корня документа. даже если php будет убит каким-то образом, файлы не будут доступны через http. –

ответ

1

Если файл является файлом PHP, а конфигурации - это PHP-код, и ваш сервер настроен на правильное выполнение .php-файлов через PHP-процессор ... тогда потенциально могут потребоваться или включать только людей на одном сервере файл. Существуют некоторые базовые конфигурации базового каталога PHP и т. Д. И некоторые функции «безопасного режима», которые запретят пользователям на общих серверах делать это, пока они правильно настроены.

За исключением того, что на общем сервере, который не настроен на защиту вашего каталога от других пользователей на том же сервере ... об единственном способе взлома файла, если Apache перестает распознавать расширение файла и обслуживает его в Интернете браузер как обычный текст и т. д., что также является проблемой конфигурации.

+0

Поскольку потенциальная опасность того, что серверы перестанут обрабатывать файлы сценариев и вместо этого отправит исходный код (таким образом, раскрыв хранимую секретную информацию), люди начали размещать вещи, которые никогда не должны обслуживаться через HTTP за пределами каталога «DOCUMENT_ROOT». – Sven

+0

Большое спасибо! Очень информативно :) – nfell2009

Смежные вопросы