Intereting Posts
Создать и использовать глобальную переменную без ключевого слова «global»? Передача строк utf-8 между php и javascript Проблема при отправке нескольких изображений на сервер в android Привет, У меня есть запрос с базой данных Как распечатать текущий URL-адрес? PHP – добавление divs в цикл foreach каждые 4 раза Запрос аудио / видеофайла для информации dyld: библиотека не загружена: /usr/local/lib/libjpeg.8.dylib – homebrew php JQuery: Как я могу объединить два объекта данных json и опубликовать их? Я хочу, чтобы мой поиск показывал только результаты с соответствующими значениями полей. Как это делается? Как получить страницу Фото с самыми любимыми и комментариями? Получение сведений о местоположении из IP в PHP Разрешение неправильной кодировки символов при отображении результатов базы данных MySQL после обновления до PHP 5.3 Удаление инъекции с использованием регулярного выражения Обновление столбца MySQL, содержащего точку (.) В ее имени

Безопасность PHP: извлечение PHP-файла с сервера, без обработки

Есть ли способ сделать это? Получение необработанного файла .php с сервера (кроме доступа к FTP-учетной записи сервера)? Это причина, почему существуют инструменты / скрипты для шифрования исходного кода php?

Если это правда, то как защитить от этого? (без использования шифрования исходного кода php)

edit: упомянутый сервер имеет запуск php, например. apache-php-mysql, ваша стандартная конфигурация сервера хостинга.

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

Если вы говорите о своем собственном сервере (то есть к которому у вас есть собственный доступ), тогда есть простые сценарии, которые вы можете разместить на сервере, которые позволяют вам указать путь к любому файлу на сервере и вернуть его как простой текст. Тем не менее, вы НИКОГДА НЕ хотите разместить такой скрипт на производственном сервере по указанным выше причинам.

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

Но как мысленный эксперимент, как это может произойти?

Оставляя в стороне оптовые эксплойты, которые получают доступ ко всей файловой системе, представьте, есть ли в приложении отверстие для безопасности, которое позволило вам вставить строку в файл .htaccess. Учитывая, что .htaccess, доступный для записи в процессе httpd, полезен для таких приложений, как WordPress, он не слишком диковинный.

Если вы добавили это:

php_value engine off 

Исходные файлы теперь становятся загружаемыми!

Возможно, если сервер не настроен так, что файлы PHP не являются собственно ручками.

Некоторые примеры:

  • Некоторые серверы сконфигурированы для отображения выделенного исходного кода файла PHP по запросу вместо .phps .
  • Некоторые разработчики используют .inc для файлов, которые должны быть включены с использованием include или require . Если сервер не настроен обрабатывать их как PHP, они будут доставлены в виде обычного текста, когда они будут запрошены напрямую.

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

Если файл обслуживается с веб-сервера с включенной интерпретацией php (через HTTP), он будет обработан. Единственный способ получить код без обработки – это если PHP был отключен каким-то образом.

В прошлом я столкнулся с неправильно настроенным веб-сервером, который имел один виртуальный хост, правильно настроенный на серверные PHP-файлы через PHP-интерпретатор. Был второй виртуальный хост, указывающий на тот же каталог, но не поддерживающий php. Это означало такие вещи, как «config.php» для нескольких приложений, видимых как обычный текст. Поскольку каждый знает, что типичный config.php имеет учетные данные auth и другие вещи, которые не должны быть известны.

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