2010-08-01 6 views

Répondre

19

Pour détecter l'extension Suhosin utiliser extension_loaded(), peu importe si elle est chargée dynamiquement ou statiquement compilé:

extension_loaded('suhosin'); 

pour détecter le Suhosin-Patch, vérifiez la présence constante:

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

Docs PHP pour extension_loaded.

Si l'extension ne se charge pas, il peut encore être disponibles dl:

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

// Extension loaded. 
return true; 
+3

Cela ne fonctionnera pas si vous avez compilé suhosin dans le cadre de votre interpréteur PHP. Installation en tant qu'extension n'est pas le seul moyen d'installation. http://www.hardened-php.net/suhosin/how_to_install_or_upgrade.html –

+0

@netme, je n'étais pas au courant de cela, désolé. – strager

2

Vous pouvez tester si une ouverture de configuration est définie pour Suhosin:

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

Cela ne fonctionnera pas sur tous les systèmes avec Suhosin installé aussi. Sur de nombreux systèmes, Suhosin n'est pas configuré par défaut. J'ai essayé sur mes 2 hostings, sur les deux variables n'ont pas été initialisées. –

+0

@netme, Odd; Je pensais que PHP remplissait la valeur par défaut si elle manquait dans les fichiers de configuration réels. Tant pis. – strager

6

il suffit d'écrire un fichier php dans la racine de votre document comme celui <?php phpinfo(); ?> il imprimera toutes les informations relatives à l'installation de php trouver juste pour le « suhosin » bloc dans il est installé sur votre serveur, vous pouvez trouver le bloc avec toutes les valeurs définies pour cela.

Questions connexes