Можно ли просмотреть PHP-код сайта? - PullRequest
37 голосов
/ 08 июня 2010

Можно ли каким-то образом просматривать php файлы / коды других веб-сайтов?

Или перефразировать вопрос: могут ли мои php коды просматриваться кем-либо, кроме тех, кто имеет доступ к файлу?

Если так, как я могу лучше всего предотвратить это?

Ps: Серверная ОС - Ubuntu 9.10 и версия PHP 5+ (Apache2)

Ответы [ 3 ]

43 голосов
/ 08 июня 2010

Ошибка или уязвимость безопасности на сервере (Apache или механизм PHP) или ваш собственный код PHP могут позволить злоумышленнику получить доступ к вашему коду.

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

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

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

Прочтите раздел Руководство по безопасности в качестве руководствауказать на сохранность вашего кода.

1 голос
/ 08 июня 2010

Используя эксплойты или плохо настроенные серверы, можно загрузить ваш PHP-источник. Однако вы можете либо запутать и / или зашифровать свой код (используя Zend Guard, Ioncube или подобное приложение), если вы хотите убедиться, что ваш источник не будет читабельным (чтобы быть точным, запутывание само по себе может быть отменено при наличии достаточного времени / ресурсов , но я еще не нашел расшифровщик IonCube или Zend Guard ...).

0 голосов
/ 08 июня 2010

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

Если кто-то скомпрометирует ваш сервер, вы рискуете. Убедитесь, что веб-сервер может писать только в те места, которые ему абсолютно необходимы. В каталоге / var есть несколько мест, которые должны быть правильно настроены вашим дистрибутивом. Они не должны быть доступны через Интернет. / var / www не должен быть доступен для записи, но может содержать подкаталоги, записанные веб-сервером для динамического содержимого. Обработчики кода должны быть отключены для них.

Убедитесь, что в вашем php-коде вы ничего не делаете, что может привести к внедрению кода. Другой риск - обратный путь в каталогах с использованием путей, содержащих .. или начинающихся с /. Apache уже должен быть исправлен, чтобы предотвратить это, когда он обрабатывает пути. Однако когда он запускает код, включая php, он не контролирует пути. Избегайте всего, что позволяет веб-клиенту передавать путь к файлу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...