2010-08-01 33 views

Respuesta

19

para detectar la extensión Suhosin uso extension_loaded() no importa si se carga dinámicamente o compilado estáticamente:

extension_loaded('suhosin'); 

para detectar la Suhosin-Patch, la verificación de la presencia constante:

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

PHP docs for extension_loaded.

Si la extensión no se carga, todavía puede estar disponible a través de dl:

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

// Extension loaded. 
return true; 
+3

Esto no funcionará si compiló suhosin como parte de su intérprete de PHP. Instalar como la extensión no es la única forma de instalación. http://www.hardened-php.net/suhosin/how_to_install_or_upgrade.html –

+0

@netme, no estaba al tanto de esto, lo siento. – strager

2

usted puede probar si un abierto de configuración se establece para Suhosin:

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

Esto no funcionará en todos los sistemas con Suhosin instalado también. En muchos sistemas, Suhosin no está configurado por defecto. Probé mis 2 hostings, en ambas variables no se inicializaron. –

+0

@netme, impar; Pensé que PHP completaba el valor predeterminado si faltaba en los archivos de configuración reales. Oh bien. – strager

6

simplemente escribir un archivo php en la raíz del documento como <?php phpinfo(); ?> se imprimirá toda la información relacionada con la instalación de PHP acaba de encontrar para el "suhosin" en su servidor está instalado el bloque, puede encontrar el bloque con todos los valores establecidos.

Cuestiones relacionadas