【问题标题】:How to check whether Suhosin is installed?如何查看是否安装了Suhosin?
【发布时间】:2010-08-01 22:03:43
【问题描述】:

我不熟悉 Suhosin(从未使用过),但如果可能的话,我需要使用 PHP 检查它是否已安装。这是我正在编写的安装程序的一部分。谢谢。

【问题讨论】:

    标签: php suhosin


    【解决方案1】:

    要检测 Suhosin Extension,无论是动态加载还是静态编译,都使用 extension_loaded():

    extension_loaded('suhosin');
    

    要检测 Suhosin-Patch,请检查是否持续存在:

    constant("SUHOSIN_PATCH");
    

    【讨论】:

      【解决方案2】:

      只需在文档根目录中编写一个 php 文件,例如 <?php phpinfo(); ?> 它将打印与 php 安装相关的所有信息,只需为安装在您的服务器上的“suhosin”块找到它,您可以找到为它设置的所有值的块。

      【讨论】:

      • suhosin 显示在 php 信息中,如果它被包含为 PHP 扩展
      【解决方案3】:
      extension_loaded('suhosin');
      

      extension_loaded 的 PHP 文档。

      如果扩展没有加载,它仍然可以通过dl 获得:

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

      【讨论】:

      【解决方案4】:

      您可以测试是否为 Suhosin 设置了配置打开:

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

      【讨论】:

      • 这不适用于所有安装了 Suhosin 的系统。在许多系统上,Suhosin 默认是未配置的。我在我的 2 个主机上试过,两个变量都没有初始化。
      • @netme,奇数;如果实际配置文件中缺少默认值,我认为 PHP 会填写默认值。哦,好吧。
      猜你喜欢
      • 2011-08-23
      • 1970-01-01
      • 1970-01-01
      • 2013-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-06
      • 2017-11-14
      相关资源
      最近更新 更多