Может ли клиент просмотреть исходный код PHP на стороне сервера?

Я разрабатываю приложение PHP, которое должно отвечать на запрос от нескольких клиентов, и я думаю: «Может ли кто-нибудь из клиентов увидеть код PHP, который я пишу?».

Нет, если

  • Существует неверная конфигурация сервера
  • Существует плохое эхо / включение где-то

Нет. Если вы не эхом отдаете их им, где вы его используете.

Использование включает в себя снизу или за пределами обслуживаемого каталога www. (еще не может +1 для Фрэнки)

Не используйте символические ссылки для своих http-каталогов. Я намеренно использовал это как для показа, так и для запуска в зависимости от пути запроса пользователя, но для этого требуются изменения (или неправильная настройка) httpd.conf и могут быть явно отключены в httpd.conf.

Если разрешить загрузку файлов с помощью fopen, не пропускайте ничего, что пользователь создает для него, или они могут выяснить, как получить его, чтобы захватить любой файл, который они могут найти. Рассматривать:

fopen('reports/' . $_GET['blah']); 

где пользователь переходит в '../index.php'

Нет, но вы должны принять все меры, чтобы предотвратить это.

Вы всегда должны устанавливать свой чувствительный код (heck, why not all?) В каталоге ниже вашего рабочего сервера dir (say / www), таким образом, если сервер будет запутан, он не сможет показать ваш код миру, потому что этот код будет включен php, который не работает в первую очередь.

Если у вас установлен веб-сервер, вместо того, чтобы анализировать ваш php, да. Но тогда клиенты не сработают. Таким образом, запрет любых дыр в безопасности, ответ – нет.

Нет. Предполагая, что вы правильно установили сервер L / UAMP или не распечатываете (эхо, print_r и т. Д.) И кишки вашего кода, PHP будет обработан, а логика или HTML – для вывода будет использоваться на странице, не видно.

NB Если в каталоге или в соответствующем файле .htacess нет «индекса», сервер Apache отобразит список файлов в каталоге, который можно загрузить и просмотреть.

Одна ошибка для этого – вставить тег php внутри строки php, например:

 $string = "This is the answer: <s><?php echo $answer; ?></s>"; echo $string; 

Человек сделал Ctrl + C и Ctrl + V что-то, что должно быть напечатано вдоль строки, но кодер забыл удалить теги php путем отвлечения.