web-dev-qa-db-ja.com

セキュリティ:disabled_functionsとクラスのベストプラクティス

Joomlaは多くのサードパーティコンポーネントなどを使用しているため、disabled_classesとdisabled_functionsのphp.iniに追加する安全な関数とクラスは何ですか?

私がこれを尋ねる理由は、サーバーをさらにロックダウンするためです。それらのphp.iniプロパティにさらに追加するのが最善です。

exec()は明らかですが、base64_decode()のようなものは頻繁に使用されるため、明らかではありません。安全で価値のある他の関数はありますか? (phpが使用するデフォルトは数えません)。

注:これは、セキュリティの「すべてを解決する」という意味ではなく、セキュリティの一部にすぎません。

3
Jordan Ramstad

これらは、人々が無効にすることを推奨するいくつかの一般的なものです:

show_source、system、Shell_exec、passthru、exec、popen、proc_open、

特に問題のないJoomla環境では。いくつかの関数に関しては、それは実際にはユースケースのことですが、理想的には、特に不安定な関数を使用しない場合はそのままにしたくないです。また、DELETEやTRACEのように恣意的または体系的に使用されていないHTTPメソッドを無効にすることをお勧めします。

1
Milton Bryant

より多くの「セキュリティ」を提供するためにコア機能を無効にするためにphp.ini設定に依存している場合は、すでに失敗しています。

サーバーのセキュリティは、機能を無効にする以上のものです。実際には、非常に安全なサーバーは、PHP参照する方法で無効にされた関数を必要としません。

さらに、ユーザーごとにphp.ini(.user.ini)ファイルを実装してこれらの機能を無効にすると、ハッカーはファイルを削除するだけで、安全でブロックされていると思われる機能にアクセスできます。

"official" checklist は機能を無効にするように言っていますが、このテーマについて読んだすべてを信じてはいけません!

1
Phil Taylor

Joomlaの実行専用のシステムユーザーを用意することをお勧めします。したがって、このユーザーにjoomlaフォルダーへのアクセスのみを制限できます。

一部の拡張機能は、悪のためではなく、善のためにそれらを必要とする可能性があるため、これらの機能を無効にすることは避ける必要があると思います。

0
csbenjamin