2011-07-27 10 views
2

最近、クラッカーがウェブサイトのコードで任意のファイルをアップロードするという脆弱性が発見されたセキュリティ問題が発生しました。その1つは「PHPシェル」で、サーバーへのアクセス権をApacheに与えます。ファイルの所有権に基づいてPHPを無効にする

Linuxサーバをロックダウンするために、悪用が修正され、ファイルが削除されている間に、私は、apache(Apacheが実行するユーザ)が所有するファイルを実行できないようにしたいと思いますPHPとして。正当なPHPファイルはすべて、別のユーザが所有しています。

私たちは、ユーザーが画像や文書をアップロードできるようにさまざまなCMSがインストールされているため、ディレクトリに書き込み可能なファイルを保存する必要があります。私ができることが分かっているもう一つの選択肢は、Apacheで書かれたディレクトリのPHPを止めることですが、複数のサーバ上の何百ものドメインに起こる必要があるので、私はもっとグローバルな修正をしてPHPから免除されるディレクトリのリストが常に最新のものであることを確認しなければならない。

思考?

+0

PHPは(高速)cgiとして、またはモジュールとしてですか? – Wrikken

+0

モジュールとしてのPHP。 –

+1

まだアップロードが許可されている場合は、このセキュリティ対策が濡れたトイレットペーパーになります。 –

答えて

0

本当に、最も安全な選択肢は、おそらくファイルが書き込まれる任意のディレクトリでPHPを無効にすることです。それ以外の方法は脆弱であるようです。 mod_php(または、FastCGIを使用している場合は、FastCGIプロセスの生成方法)を変更することはできますが、これらのアプローチはかなり複雑です。

あなたがこれを所有者として使用することを意図している場合(そして誰かが見つけた世界的に書き込み可能なPHPファイルではないことを保証するためのパーミッションも)、auto_prepend_filephp.ini

これにより、すべてのPHPスクリプトの冒頭にあるrequireになるPHPコードをファイルに入れることができます。 PHPで、ファイルが実行されることを検証するために必要なロジックを書くことができます(それ以外の場合は強制的に終了します)。スクリプトを実行しない場合は、管理者に電子メールを送信したり、適切な処置を取ったりすることもできます。

http://www.php.net/manual/en/ini.core.php#ini.auto-prepend-file

しかし、このアプローチは非常にハックですが、私が言ったように。所有権に頼るのではなく、Webサーバが書き込み可能なディレクトリでPHPサポートを無効にする方がはるかに優れています。

+0

ありがとう、私はこのアプローチを、Webサーバーが書き込み可能なディレクトリでPHPを無効にするのと一緒に使用します。 –

関連する問題