2010-08-01 6 views
16

Я не знаком с Сухозином (никогда не использовал его), но по возможности мне нужно проверить с помощью PHP, установлен ли он. Это для части установщика, который я пишу. Благодарю.Как проверить, установлен ли Suhosin?

ответ

19

Чтобы обнаружить Suhosin Extension использовать extension_loaded() независимо от того, если он загружается динамически или статически скомпилирован:

extension_loaded('suhosin'); 

для обнаружения Suhosin-Patch, проверьте постоянного присутствия:

constant("SUHOSIN_PATCH"); 
2
extension_loaded('suhosin'); 

PHP docs для extension_loaded.

Если расширение не загружается, она может быть доступна через dl:

if (!extension_loaded('suhosin')) { 
    if (!dl('suhosin.so')) { 
     // Extension not loaded. 
     return false; 
    } 
} 

// Extension loaded. 
return true; 
+3

Это не сработает, если вы скомпилировали suhosin как часть вашего интерпретатора PHP. Установка в качестве расширения не является единственным способом установки. http://www.hardened-php.net/suhosin/how_to_install_or_upgrade.html –

+0

@netme, я не знал об этом, извините. – strager

2

Вы можете проверить, если открытая конфигурация устанавливается для Suhosin:

$isSuhosinInstalled = ini_get('suhosin.session.max_id_length') !== ''; 
+0

Это не будет работать на всех системах с установленным Suhosin. По многим системам Suhosin по умолчанию не сконфигурирован. Я пробовал свои 2 хостинга, поскольку обе переменные не были инициализированы. –

+0

@netme, Odd; Я думал, что PHP заполняет значение по умолчанию, если оно отсутствует в фактических файлах конфигурации. Ну что ж. – strager

6

просто написать файл PHP в корне документа, как <?php phpinfo(); ?> он будет печатать всю информацию, относящуюся к установке PHP просто найти для «Suhosin» блок на нем установлен на вашем сервере, вы можете найти блок со всеми установленными для него значениями.

Смежные вопросы