Можно просмотреть PHP-код веб-сайта?


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

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

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

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

Author: afuzzyllama, 2010-06-08

3 answers

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

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

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

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

Прочитайте раздел Безопасности руководства по PHP в качестве отправной точки для обеспечения безопасности вашего кода.

 41
Author: Artelius, 2010-06-08 07:23:40

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

 1
Author: wimvds, 2010-06-08 07:23:32

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

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

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

 0
Author: BillThor, 2010-06-08 07:23:18