Каковы побочные эффекты включения PROCESS CONTROL (PCNTL) в PHP в среде веб-сервера? - PullRequest
0 голосов
/ 12 марта 2011


ниже цитата из http://www.php.net/manual/en/intro.pcntl.php

Process Control should not be enabled within a web server environment and unexpected results 
may happen if any Process Control functions are used within a web server environment.

Каковы побочные эффекты его включения на моем веб-сервере? каковы угрозы и проблемы безопасности в этом?

Большое спасибо за вашу помощь

Ответы [ 2 ]

5 голосов
/ 12 марта 2011

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

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

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

4 голосов
/ 12 марта 2011

Если вы включите это, ненадежный автор PHP-кода может fork-bomb ваш сервер, от которого труднее защитить, чем вы думаете.

Ненадежный автор PHP-кода может убитьили приостановить работу веб-сервера или любых процессов, которые выполняются от имени того же пользователя, что и веб-сервер.(Если веб-сервер запускает ненадежный код PHP от имени пользователя root, он может остановить или приостановить все процессы на сервере.) Или, если вы используете FastCGI или аналогичные инструменты, он может убить или приостановить выполнение любых других задач от имени того же пользователя.

Ненадежный автор PHP-кода может вызвать семейство функций wait(2), которое отчаянно запутает сервер или интерфейс FastCGI.Это может привести к зависанию, может привести к сбою, зависит от сервера.

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

Любой код, который вы запускаете в mod_php (или аналогичные технологии для других серверов), будет иметь полный доступ ко всему, что может делать веб-сервер.

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

Если вы действительно хотите ограничить то, что может делать ненадежный код PHPЯ рекомендую изучить различные механизмы обязательного контроля доступа, такие как AppArmor , TOMOYO , SELinux или SMACK .

...