Elettracompany.com

Компьютерный справочник
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Expose php off

Превращение expose_php OFF в php.ini

Мне сообщили, что наличие expose_php = On в моем php.ini является проблемой безопасности и поэтому не соответствует PCI.

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

Потенциальные проблемы, о которых я думаю, — это сторонние сервисы (платежные провайдеры, системы отслеживания email, потоковое видео APIs), которые ожидают, что вы ответите заголовком, указывающим, что вы используете версию PHP, возможно, над определенной версией?

Должно ли это быть плавным изменением или это может привести к проблемам?

4 Ответов

И это правильно.

Установка expose_php = Off просто предотвращает отправку webserver обратно заголовка X-Powered-By .

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

С точки зрения взаимодействия со сторонними сервисами, они не должны заботиться о том, какую версию PHP вы используете. Они должны быть способны обслуживать контент в платформенно-агностических форматах, таких как JSON, XML и т. д., Чтобы сервисы могли использоваться любой платформой, а не только PHP.

В любом случае, для них полагаться на версию «consumer’s» PHP бесполезно, так как заголовок можно легко отключить и, возможно, даже манипулировать администратором сервера.

Поэтому не должно быть проблем с его выключением.

При отключении функции expose_php не должно быть никаких негативных побочных эффектов .

Все, что он делает, это удаляет заголовок X-Powered-By и останавливает GET params от возврата PHP кредитов и изображений.

Любое стороннее приложение, которое полагается на заголовок, является сомнительным. При необходимости вы всегда можете подделать заголовок.

Нет абсолютно никакого вреда в том, чтобы включить или выключить эту опцию.

Однако его отключение не добавит безопасности вашему сайту. Эти скриптовые детские инструменты настолько тупы, что они никогда не потрудятся отличить одну платформу от другой.

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

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

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

Похожие вопросы:

У меня есть веб-сервер apache. Допустим, домен этого сервера- example.com . Когда я обращаюсь к example.com, то файл index.php правильно отображается в браузере. Однако, когда я обращаюсь, например.

Я работаю в следующем Dockerfile: RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y curl apache2 php5 php5-cli libapache2-mod-php5 php5-gd php5-json .

Я сканировал свое веб-приложение с помощью Acunetix Web Vulnerability Scanner, и он говорит, что тип контента php.ini не указан. Описание уязвимости На этой странице не задано значение заголовка.

Я не могу найти php.ini, но мне нужно отключить short_open_tag. Как еще я могу это сделать? Именно здесь находится файл Но я понятия не имею, как получить к нему доступ. загруженный конфигурационный.

Как я могу установить get_magic_quotes_gpc в Off в php.ini ? Я попытался перезаписать значение Off в php.ini. он хвастается в файле, но когда я Эхо, он возвращает 1 означает ВКЛ. любое предложение.

у меня есть следующая команда regex в моем сценарии bash: sed -i -e ‘s/(expose_php = On)/1expose_php = Off/’ /etc/php/php.ini Вместо замены: expose_php = On с expose_php = Off он делает.

Я меняю expose_php=On на ( expose_php=Off _ expose_php=off ) Но в phpinfo() expose_php идет ! Для установки Yii он должен быть отключен ! yii/basic/requirements.php => expose_php должно быть.

я использую yii2 Я стараюсь : — удалить заголовок с header_remove(); — использовать — используйте ini_set для набора expose_php = Off ( у меня нет доступа к.

Я пытаюсь изменить display_errors = Off на display_errors = On в моем php.ini. Я запустил phpinfo() и проверил загруженный конфигурационный файл (он находится здесь: /Library/Application.

Я пытаюсь заставить expose_php отключиться с помощью ini_set, но это, похоже, не работает. Я попробовал значение 0 и выкл, но ни то, ни другое не сработало. ini_set(‘expose_php’,0); помочь?

Файл конфигурации PHP (php.ini)

Описание встроенных директив файла php.ini

Этот список включает встроенные директивы php.ini которые вы можете использовать для настроки PHP. Директивы, которые обрабатываются модулями, перечислены и подробно описаны на страницах документаций соответствующих модулей.

Опции языка и прочих настроек

Краткое разъяснение конфигурационных директив.

Определяет, разрешается ли короткая форма записи ( ) тегов PHP. Если вы хотите использовать PHP в комбинации с XML, вы можете отключить эту опцию, чтобы беспрепятственно использовать . В противном случае, вы можете отобразить это при помощи PHP, например: . Если же эта опция отключена, вы должны использовать длинную форму открывающего тега PHP ( ).

Замечание: Эта директива также влияет на сокращение , которое идентично записи . Для использования этого сокращения, директива short_open_tag должна быть включена.

Включает использование тегов в стиле ASP в дополнение к обычным тегам . Это касается и сокращения для отображения значения переменных . Для получения дополнительной информации, обратитесь к разделу Вставка в HTML.

Замечание: Поддержка тегов в стиле ASP выла добавлена в версии PHP 3.0.4.

Количество значащих цифр, отображаемых для десятичных дробей.

Включение совместимости с 2000 годом (создаст проблемы с несовместимыми браузерами).

Включена ли возможность жёсткой передачи аргументов по ссылке во время вызова функции. Этот метод является устаревшим и скорее всего не будет поддерживаться будущими версиями PHP/Zend. Рекоммендуемым методом указания, какие аргументы должны быть переданы по ссылке, является указание этого при объявлении функции. Вам рекоммендуется попытаться отключить эту опцию, чтобы убедиться, что ваши скрипты будут правильно работают без неё и что они будут работать с будущими версиями языка (вы будете получать предупреждение каждый раз, когда вы будете пользоваться этим методом, и аргументы будут передаваться по значению, а не по ссылке).

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

Читать еще:  Php fopen utf 8

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

Включает режим совместимости с Zend Engine 1 (PHP 4). Это влияет на клонирование, приведение типов и сравнение объектов

Краткое разъяснение конфигурационных директив.

Эта директива задаёт максимальный объём памяти в байтах, который разрешается использовать скрипту. Это помогает предотвратить ситуацию, при которой плохо написанный скрипт съедает всю доступную память сервера. Для того, чтобы использовать эту директиву, вы должны указать её на этапе компиляции. Так, ваша строка конфигурации должна включать: —enable-memory-limit . Обратите внимание, что вы должны установить эту директиву в -1, если не хотите ограничивать объём памяти.

Начиная с версии PHP 4.3.2, если memory_limit включён, стала доступна функция PHP memory_get_usage().

Если используется integer, значение измеряется байтами

Конфигурационные опции обработки данных

Краткое разъяснение конфигурационных директив.

Если включено, переменные окружения, GET, POST, Cookie и серверные переменные могут быть получены через глобальные ассоциативные массивы $_ENV , $_GET , $_POST , $_COOKIE и $_SERVER .

Обратите внимание, что начиная с версии PHP 4.0.3, track_vars всегда включена.

Этот разделитель используется в генерируемых PHP URL’ах в качестве разделителя аргументов.

Список разделителей, используемых PHP для получения переменных из URL’ов.

Замечание: Каждый символ в этой директиве считается разделителем!

Устанавливает порядок обработки переменных EGPCS (Environment, GET, POST, Cookie, Server). Значением по умолчанию для этой директивы является «EGPCS». Установка её в «GP», к примеру, заставит PHP полностью игнорировать переменные окружения, cookie и сервера, а так же перезаписать любую GET-переменную POST-переменной с таким же именем.

Когда включено, переменные SERVER и ENV создаются в тот момент, когда они впервые используются (Just In Time), а не в начале выполнения скрипта. Если эти переменные в скрипте не используются, включение этой директивы приведёт к росту производительности.

Директивы PHP register_globals, register_long_arrays и register_argc_argv должны быть выключены для того, чтобы эта директива работала.

Регистрировать или нет переменные EGPCS (Environment, GET, POST, Cookie, Server) в качестве глобальных переменных.

Начиная с версии PHP 4.2.0, значением по умолчанию для этой директивы является off .

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

Обратите внимание, что register_globals не может быть установлена во время выполнения скрипта (ini_set()). Тем не менее, вы можете использовать .htaccess, если ваш сервер позволяет это, как описано выше. Пример директивы в .htaccess: php_flag register_globals off .

Замечание: На поведение register_globals влияет директива variables_order.

Сообщает PHP, следует ли объявляеть переменные argv и argc (которые будут содержать GET-информацию).

См. также Использование PHP в командной строке. Эта директива стала доступна начиная с версии PHP 4.0.0 и до этого была всегда включена.

Сообщает PHP, следует ли регистрировать устаревшие длинные предопределенные переменные типа $HTTP_*_VARS . Если включены (по умолчанию), длинные предопределенные переменные PHP, например $HTTP_GET_VARS , будут объявлены. Если вы их не используете, рекоммендуем отключить их из соображений производительности. Вместо них следует использовать суперглобальные массивы, например $_GET .

Эта директива стала доступна начиная с версии PHP 5.0.0.

Устанавливает максимальный допустимый размер POST-данных. Это свойство также влияет на закачиваемые файлы. Чтобы закачивать большие файлы, это значение должно быть выше upload_max_filesize.

Если в вашем конфигурационном скрипте включено ограничение памяти, memory_limit также будет влиять на закачивание файлов. Проще говоря, memory_limit должна быть больше чем post_max_size .

Если используется integer, значение измеряется байтами.

Устанавливает порядок обработки переменных GET/POST/COOKIE. Значением по умолчанию для этой директивы является «GPC». Установка её в «GP», к примеру, приведёт к тому, что PHP будет полностью игнорировать cookies и перезапишет любую GET-переменную POST-переменной с таким же именем.

Замечание: Эта опция не доступна в PHP 4. Вместо неё используйте variables_order.

Определяет имя файла, который будет автоматически обрабатываться перед главным файлом. Файл вызывается так, будто он был подключён при помощи функции include(), так что используется include_path.

Специальное значение none отключает эту директиву.

Определяет имя файла, который будет автоматически обрабатываться после главного файла. Файл вызывается так, будто он был подключён при помощи функции include(), так что используется include_path.

Специальное значение none отключает эту директиву.

Замечание: Если скрипт завершает работу при помощи exit(), auto_append_file НЕ выполняется.

Начиная с версии 4.0b4, PHP всегда отправляет кодировку по умолчанию в заголовке Content-Type. Чтобы отключить отправку кодировки, просто установите её пустой строкой.

Всегда объявлять переменную $HTTP_RAW_POST_DATA.

Разрешает обработку HTTP-запросов WebDAV при помощи PHP-скриптов (например PROPFIND, PROPPATCH, MOVE, COPY и т.д.). Эта директива не существует начиная с версии PHP 4.3.2. Если вы хотите получить POST-данные этих запросов, вы должны также включить always_populate_raw_post_data.

Конфигурационные Опции Путей и Директорий

Краткое разъяснение конфигурационных директив.

Указывает список директорий, в которых функции require(), include() и fopen_with_path() ищут файлы. Формат соответствует формату переменной окружения PATH вашей системы: список директорий, разделённых двоеточием в Unix или точкой с запятой в Windows.

Пример include_path в Unix

Пример include_path в Windows

Использование . в include_path позволяет задавать относительные пути для подключения файлов, так как точка означает текущую директорию.

«Корневая директория» PHP на этом сервере. Используется только в случае, если не пустая. Если PHP сконфигурирован с безопасный режим, файлы вне этой директории не обрабатываются. Если PHP не был скомпилирова с FORCE_REDIRECT, вам следует установить doc_root, если вы используете PHP в качестве CGI под любым веб-сервером (кроме IIS). Альтернативой является использование конфигурационной директивы cgi.force_redirect, речь о которой идёт ниже.

Базовое имя директории, используемой в домашнем каталоге пользователя для PHP файлов, например public_html.

В какой директории PHP должен искать динамически загружаемые расширения. См. также: enable_dl и dl().

Which dynamically loadable extensions to load when PHP starts up.

Обеспечивает поддержку правильных PATH_INFO/PATH_TRANSLATED в CGI. Раньше PHP просто устанавливал PATH_TRANSLATED в SCRIPT_FILENAME и не обращал внимания на PATH_INFO. Для получения дополнительной информации о PATH_INFO, обратитесь к спецификации CGI. Установка этого значения в 1 заставит PHP CGI исправлять свой путь в соответствии со спецификацией. Значение 0 соответствует предыдущему поведению. По умолчанию установлен 0. Вы должны исправить свои скрипты так, чтобы они использовали SCRIPT_FILENAME вместо PATH_TRANSLATED.

Читать еще:  Парольная защита информации

Директива cgi.force_redirect необходима для обеспечения безопасности во время работы PHP в качестве CGI под большинством веб-серверов. Если оставить неопределённым, по умолчанию PHP включает эту директиву. Вы можете выключить её на свой страх и риск .

Замечание: Пользователям Windows: Вы можете безопасно выключить её под IIS. Более того, вы должны это сделать. Чтобы заставить OmniHTTPD или Xitami работать, вы должны отключить эту директиву.

Если cgi.force_redirect включена и вы работаете не под веб-сервером Apache или Netscape (iPlanet), вам может понадобится установить переменную окружения, которую будет искать PHP чтобы убедится, что он может продолжать выполнение.

Замечание: Установка этой переменной может повлечь за собой проблемы с безопасностью, так что вы должны знать, что вы делаете .

FastCGI под IIS (в ОС на базе WINNT) поддерживает возможность имперсонации прав безопасности вызывающего клиента. Это позволяет IIS определить контекст безопасности, в котором выполняется запрос. mod_fastcgi под Apache на текущий момент не поддерживает эту возможность (03/17/2002). Установите в 1 при работе под IIS. Значение по умолчанию — ноль.

Сообщает PHP, какой тип заголовков использовать при отправке кода ответа HTTP. Если установлено в 0, PHP отправляет заголовок «Status:», который поддерживается Apache и другими веб-серверами. Если установлено в 1, PHP отправляет заголовок, соответствующий RFC 2616. Оставьте в значении 0, если вы не уверены в том, что это значит.

Конфигурационные Опции Закачивания Файлов

Сокрытие PHP

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

Пример #1 Маскировка PHP под другие языки программирования

Пример #2 Использование неизвестных расширений для PHP-скриптов

Пример #3 Маскировка PHP-файлов под HTML

User Contributed Notes 25 notes

So far I haven’t seen a working rewriter of /foo/bar into /foo/bar.php, so I created my own. It does work in top-level directory AND subdirectories and it doesn’t need hardcoding the RewriteBase.

# Rewrite /foo/bar to /foo/bar.php
RewriteRule ^([^.?]+)$ %.php [L]

# Return 404 if original request is /foo/bar.php
RewriteCond % «^[^ ]* .*?.php[? ].*$»
RewriteRule .* — [L,R=404]

# NOTE! FOR APACHE ON WINDOWS: Add [NC] to RewriteCond like this:
# RewriteCond % «^[^ ]* .*?.php[? ].*$» [NC]

try this
RewriteEngine On

# Redirect external .php requests to extensionless url
RewriteCond % ^(.+).php([#?][^ ]*)? HTTP/
RewriteRule ^(.+).php$ http://example.com/folder/$1 [R=301,L]

# Resolve .php file for extensionless php urls
RewriteRule ^([^/.]+)$ $1.php [L]

The session name defaults to PHPSESSID. This is used as the name of the session cookie that is sent to the user’s web browser / client. (Example: PHPSESSID=kqjqper294faui343o98ts8k77).

To hide this, call session_name() with the $name parameter set to a generic name, before calling session_start(). Example:

PS. If you want to use pretty URLs (i.e. hide your .php extensions) AND you have safe-mode=on, the previous example (ForceType) won’t work for you. The problem is that safe-mode forces Apache to honor trailing characters in a requested URL. This means that:

would still be processed by the home script in our doc root, but for:

apache would actually look for the /home/contact_us.html file in our doc root.

The best solution I’ve found is to set up a virtual host (which I do for everything, even the default doc root) and override the trailing characters handling within the virtual host. So, for a virtual host listening on port 8080, the apache directives would look like this:

DocumentRoot /web/doc_root
Alias /home «/web/doc_root/home.php»
AcceptPathInfo On

Some people might question why we are overriding the trailing characters handling (with the AcceptPathInfo directive) instead of just turning safe-mode=off. The reason is that safe mode sets global limitations on the entire server, which can then be turned on or left off for each specific virtual host. This is the equivilent of blocking all connections on a firewall, and then opening up only the ones you want, which is a lot safer than leaving everything open globally, and assuming your programmers will never overlook a possible security hole.

Как отключить отображение версии Web-сервера в Http-заголовке

Отображение версии используемого программного обеспечения в заголовке ответа Web-сервера несет за собой угрозу безопасности. Если злоумышленник знает точную версию программного обеспечения, используемую на веб-сайте, то он может использовать уязвимости конкретной версии ПО для осуществления противоправных действий.
Чтобы уменьшить вероятной подобного взлома и атаки на конкретную версию программного обеспечения, эту информацию рекомендуется скрыть, чтобы лишить злоумышленника информации о версии сервера, версии используемого ПО и о платформе в целом. Иначе может получиться ситуация, когда сканирование веб-серверов опубликованных в Интернет по наличию веб-заголовка с определенной версией ПО внесет ваш веб-сайт в список подверженных уязвимости.

Как наиболее распространенным версиям веб-серверов относятся:

  • Nginx
  • Apache
  • Microsoft IIS

Ниже описаны способы скрытия отображения версии программного обеспечения.

Как скрыть отображение версии Nginx в http заголовке

По умолчанию конфигурация Web-сервера Nginx хранится в конфигурационном файле nginx.conf расположенного по пути etc/nginx/nginx.conf.
Для отключения отображения версии необходимо в файле nginx.conf в разделе http добавить строку:
и перезапустить Nginx, например, при помощи команды
После внесенных изменений, в заголовках ответа веб-сервера вместо: будет отображаться информация:
Подробнее с вариантами значений можно ознакомиться на странице: http://nginx.org/ru/docs/http/ngx_http_core_module.html#server_tokens

Как скрыть отображение версии Apache в http заголовке

Чтобы спрятать версию Apache нужно добавить/отредактировать параметры в httpd.conf, по умолчанию для CentOS этот файл находится в папке /etc/httpd/http.conf (в других версиях Linux этот путь может быть другим).
За отображение версии Apache отвечает параметр ServerTokens, по умочанию, он имеет значение Full, в этом случае веб сервер может отдавать в заголовке следующую информацию:
Если явно указать значение: Prod[uctOnly], например, так: , то Apache не будет отдавать в заголовке ответа свою версию. Будет отдаваться ответ:
Для отключения отображения версии Apache на страницах с ошибками следует также добавить директиву: Подробнее с вариантами значений можно ознакомиться на странице: https://httpd.apache.org/docs/2.4/mod/core.html#serversignature

Читать еще:  M последовательность matlab

Как скрыть отображение версии Microsoft IIS в http заголовке

Для версий IIS 7+ (IIS 7, 8.5, 8.0, 8.5) параметров скрывающих отображение версии в IIS не предусмотрено. Однако, возможно использование дополнительного расширения на IIS URL Rewrite. IIS URL Rewrite позволяет на уровне отдельного веб-сайта (или приложения), а также на уровне сервера целиком, подменять заголовок ответа.
После установки этого модуля необходимо создать правило URL Rewrite Outbound используя консоль IIS Manager или используя редактор:
После создания такого правила ответ сервера вида:
Изменится на

В IIS 10.0 (Windows Server 2016/2019) возможно удалить заголовки веб-сервера установив в файле web.config в разделе для настройки requestFiltering значение параметра removeServerHeader в «true»:

Также рекомендуется скрывать версии ПО

  • PHP
  • PHP-FPM
  • ASP.NET

Как скрыть отображение версии PHP в http заголовке

Чтобы скрыть отображение версии php в заголовке ответа веб сервера, необходимо в конфигурационном файле php.ini изменить строку:
на

После применения этого изменения и перезапуска веб-сервера значение параметра заголовка X-Powered-By перестанет отображаться.

Как скрыть отображение версии PHP-FPM в http заголовке

Чтобы скрыть отображение версии PHP-FPM в заголовке ответа веб сервера, необходимо в конфигурационном файле php-fpm.conf прописать строку:
Перезапуск веб-сервера применит измененное значение параметра.

Как скрыть отображение версии ASP.NET в http заголовке

При использовании ASP.NET на веб сервере IIS веб-сервер по умолчанию отдает следующий заголовок:

для скрытия из заголовка параметра X-AspNet-Version о используемой версии ASP.NET необходимо добавить в файл web.config добавить строки:

Скрыть заголовок X-Powered-By из ответа веб сервера проще всего из консоль управления IIS в разделе HTTP Response Headers, для этого необходимо удалить соответствующее значение, как показано на скриншоте ниже и после этого перезапустить сервер.

Защищаем PHP. Шаг за шагом.

Эта статья рассказывает об основных шагах в защите PHP, одном из наиболее популярных языков создания сценариев, созданном в основном для создания динамических web-страниц. Для избежания повтора информации, охваченной в предыдущей статье, мы покажем только основные различия, от процесса защиты Web сервера Apache.

В предыдущей статье «Защищаем Apache» автор описал метод защиты Web сервера Apache от несанкционированного доступа из Internet. Благодаря этому методу можно было достичь высокого уровня защиты, но в случае обслуживания только статических HTML страниц. Но как же осуществить защиту, когда необходимо взаимодействие с пользователем, а данные пользователей должны быть сохранены в локальной базе данных?

Эта статья рассказывает об основных шагах в защите PHP, одном из наиболее популярных языков создания сценариев, созданном в основном для создания динамических web-страниц. Для избежания повтора информации, охваченной в предыдущей статье, мы покажем только основные различия, от процесса защиты Web сервера Apache.

Как и в предыдущей статье, операционной системой является — FreeBSD 4.7. Однако, представленные методы можно также применять и на более современных unix и unix-подобных системах. Мы также предполагаем, что база данных MySQL установлена на хосте, и помещена в каталог «/usr/local/mysql».

Функциональные возможности будут подобны описанным в предыдущей статье. Однако, существуют некоторые изменения:

Предложения по защите

Должно быть добавлено следующее:

  • PHP конфигурация должна пользоваться преимуществом встроенных механизмов защиты
  • PHP сценарии должены быть выполнены в chrooted среде
  • Apache сервер должен отклонять все запросы (GET и POST), которые содержат HTML-тэги (возможная атака межсайтового скриптинга), знаки апострофа “`” и двойные кавычки (возможная SQL-injection атака)
  • Ни одно из PHP предупреждений или сообщений об ошибках не должно быть доступно пользовательским Web приложениям.

Подготовка программного обеспечения

Прежде всего, мы должны загрузить исходники самых последних версий Apache, PHP и модуля mod_security . Модуль будет использоваться, для защиты от CSS и SQL-injection атак. Затем, загруженное программное обеспечение должно быть распаковано, а содержание архива — помещено в основной каталог. Исходники модуля mod_security должны быть помещены в каталог Apaсhe «src/modules/extra»:

gzip -dc apache_1.3.27.tar.gz | tar xvf —
gzip -dc php-4.3.2.tar.gz | tar xvf —
gzip -dc mod_security_1.5.tar.gz | tar xvf —
cp mod_security_1.5/apache1/mod_security.c apache_1.3.27/src/modules/extra/

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

Перед компиляцией программы, мы должны определиться в одном из трех методов инсталляции PHP:

Каждый из этих методов имеет свои преимущества и недостатки. Компиляция PHP, как статического модуля, принесет пользу от улучшения производительности Web сервера, но при апгрейде PHP до более новой версии придется перекомпилировать весь Web сервер. Компиляция PHP как динамического модуля, позволяет избежать этого недостатка, но производительность WEB сервера будет уменьшена приблизительно на 5%, и был бы необходим еще один модуль: mod_so. Третий метод состоит в установке PHP как интерпретатора CGI — вместе с механизмом Apache — suEXEC, что является весьма интересным решением. К сожалению, при неправильной установке этот метод может представлять серьезную угрозу защите.

Для лучшей защиты и производительности, лучшим выбором, является компиляция PHP как статического модуля. Именно поэтому остальная часть статьи основана на этом методе инсталляции.

Вообще, как описано в предыдущей статье, инсталляционный процесс Apache с PHP очень похож на процесс установки Apache без PHP, Единственное различие — использование двух дополнительных модулей: mod_PHP и mod_security.

Как и в предыдущей статье, мы начнем с создания учетной записи и группы, называемых «apache». Для этого мы должны подготовить Web сервер Apache следующим образом:

cd apache_1.3.27
./configure

И откомпилировать PHP модуль:

cd ../php-4.3.2
./configure —with-mysql=/usr/local/mysql —with-apache=../apache_1.3.27 —enable-safe-mode
make
su
make install

Затем мы перемещаемся в каталог с Apache и продолжаем установку:

cd ../apache_1.3.27
./configure —prefix=/usr/local/apache —disable-module=all —server-uid=apache —server-gid=apache —enable-module=access —enable-module=log_config —enable-module=dir —enable-module=mime —enable-module=auth —activate-module=src/modules/extra/mod_security —enable-module=security —activate-module=src/modules/php4/libphp4.a
make
su
make install
chown -R root:sys /usr/local/apache

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

cd ../php-4.3.2
mkdir /usr/local/lib
chmod 755 /usr/local/lib
cp php.ini-recommended /usr/local/lib/php.ini
chown root:sys /usr/local/lib/php.ini
chmod 644 /usr/local/lib/php.ini

Для сценариев PddType application/x-httpd-php .phpHP, которые будут обрабатываться Web сервером Apache, к /usr/local/Apache/conf/httpd.conf должна быть добавлена следующая строка:

AddType application/x-httpd-php .php

Ссылка на основную публикацию
ВсеИнструменты 220 Вольт
Adblock
detector
×
×