6

PHPだけを使用してmod_securityがインストールされ有効になっているかどうかを検出する簡単な方法はありますか? 理想的には、exec() 端末タイプのコマンドを実行する必要はありません。

一部の人々は apache_get_modules() の使用を推奨していますが、この特定の Web ホストでは表示できません。これは、他のユーザーによっても言及されています: http://www.devcomments.com/apache_get_modules-solution-to130703.htm

4

4 に答える 4

5

ロードされたモジュールの配列を取得するapache_get_modules関数を試してください。そのモジュールがロードされているが、そこにリストされていない場合は、代わりに次を試しphpinfoてみてください。phpinfo(INFO_MODULES)

ob_start();
phpinfo(INFO_MODULES);
$contents = ob_get_clean();
$moduleAvailable = strpos($contents, 'mod_security') !== false;
于 2010-07-05T22:43:33.560 に答える
4

test.php ファイルを作成して使用するだけです。

<?php phpinfo(); ?>

そして、apache2handler を見て、以下を見てください: ロードされたモジュール.. このようなもの...

http://gyazo.com/bcba303469f23671f7213e1478788cbd.png

-マイク

于 2013-08-23T17:47:36.560 に答える
2

ここでストローをつかみます。

mod_security をトリップするスクリプト自体に (file_get_contentsまたはおそらく cURL 拡張を介して) 要求を作成してみてください。403 (または mod_security のデフォルトの応答が何であれ) が返された場合、それで十分な情報が得られるはずです...

于 2010-07-06T02:24:06.187 に答える
0

get_loaded_extensions() 関数を検索して array_intersect() を使用すると、一致する値が見つからない場合は配列で一致する値が返され、空の配列が返されます。

$modSecurity = !empty(array_intersect(array_map('strtolower', get_loaded_extensions()), array('mod_security', 'mod security'))) ? true : false;
于 2018-11-07T03:29:17.910 に答える