如何检查Suhosin是否安装?
要检测了Suhosin扩展来使用extension_loaded()不管它是动态加载或静态编译:
extension_loaded('suhosin');
为了检测了Suhosin贴片,则检查是否存在恒定:
constant("SUHOSIN_PATCH");
extension_loaded('suhosin');
PHP文档extension_loaded
。
如果扩展名不加载,它可能仍然是可以通过dl
:
if (!extension_loaded('suhosin')) {
if (!dl('suhosin.so')) {
// Extension not loaded.
return false;
}
}
// Extension loaded.
return true;
如果配置打开设置为了Suhosin可以测试:
$isSuhosinInstalled = ini_get('suhosin.session.max_id_length') !== '';
这不适用于安装了Suhosin的所有系统。在许多系统上,Suhosin默认是未配置的。我试过我的2个主机,两个变量都没有初始化。 Odd; – 2010-08-02 06:21:37
@netme,Odd;我以为PHP填充了默认值,如果它从实际配置文件中丢失。好吧。 – strager 2010-08-02 11:37:34
简单的写像<?php phpinfo(); ?>
在您的文档根目录的PHP文件,将打印所有涉及到PHP安装的信息只是找到适合“了Suhosin”将其中的块安装在您的服务器上,您可以找到为其设置的所有值的块。
如果您将suhosin编译为PHP解释器的一部分,这将不起作用。作为扩展安装不是唯一的安装方式。 http://www.hardened-php.net/suhosin/how_to_install_or_upgrade.html – 2010-08-01 23:02:20
@netme,我没有意识到这一点,对不起。 – strager 2010-08-01 23:14:28