2010-08-01 22 views

Antwort

19

die Suhosin Erweiterung Zur Erkennung verwenden extension_loaded() ganz gleich, ob sie dynamisch geladen wird oder statisch kompiliert:

extension_loaded('suhosin'); 

Um die Suhosin-Patch prüft für die ständige Präsenz zu erkennen:

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

PHP-Dokumentation für extension_loaded.

Wenn die Erweiterung nicht geladen, kann es noch durch dl verfügbar sein:

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

// Extension loaded. 
return true; 
+3

Dies funktioniert nicht, wenn Sie Suhosin als Teil Ihres PHP-Interpreters kompiliert haben. Die Installation als Erweiterung ist nicht die einzige Art der Installation. http://www.hardened-php.net/suhosin/how_to_install_or_upgrade.html –

+0

@netme, das war mir nicht bekannt, sorry. – strager

2

Sie können testen, ob eine Konfiguration offen für Suhosin gesetzt:

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

Dies funktioniert nicht auf allen Systemen, auf denen Suhosin installiert ist. Auf vielen Systemen ist Suhosin standardmäßig nicht konfiguriert. Ich habe an meinen 2 Hostings versucht, auf beiden Variablen wurden nicht initialisiert. –

+0

@netme, ungerade; Ich dachte, dass PHP den Standardwert füllte, wenn es in den tatsächlichen Konfigurationsdateien fehlte. Naja. – strager

6

einfach eine PHP-Datei in Ihrem Dokument root schreiben wie <?php phpinfo(); ?> es alle Informationen, die PHP-Installation im Zusammenhang gedruckt wird nur für die „suhosin“ finden Block in es auf Ihrem Server installiert ist, können Sie den Block mit allen für ihn eingestellten Werten finden.

Verwandte Themen