Windows system >> Windowsの知識 >  >> コンピュータソフトウェアのチュートリアル >> サーバー技術 >> サーバーについて >> Apache + Proftpd仮想ホストのセキュリティ問題

Apache + Proftpd仮想ホストのセキュリティ問題

  

1. Proftpdはhostuser /hostuserアカウントを作成し、すべてのユーザはこのアカウントにマップされます。

htdocs /hostsディレクトリの所有者もhostuserです。

FTPを使用してユーザーがアップロードしたファイル属性はhostuserです(644 755)。

あなたのホームディレクトリにFTPユーザーをロックします。

Apacheは誰とも動作しません(独立したapacheユーザの方が良いです)。hostuserのスクリプトファイルを読んでください。

アップロードディレクトリとキャッシュディレクトリを作成するには、777を設定してそのサブディレクトリを循環させる必要があります。 2つのディレクトリでスクリプトの実行が禁止されています(.htaccess:php_flagエンジンオフ)。この方法では、ハッカーがこれら2つのディレクトリにWebシェルをアップロードしても実行できません。

キャッシュ内の新しいファイルの所有者またはアップロード者は誰にもなりません。

キャッシュディレクトリは外部アクセスを制限する必要があります。

ここで問題があります。すなわち、apache 644と755によって生成されたファイルとディレクトリです。proftpdがhostuser:hostuserとして実行されると、キャッシュの内容を削除したりアップロードしたりすることはできません。

解決策:

(1)PHPプログラムのchmodファイルとディレクトリはそれぞれ666と777です。

例としてadodbを取り上げます。adodb.inc.phpファイルを修正する必要があります。 1681行の場合(!mkdir($ dir、0771))およびadodb-csvlib.inc.phpファイル287行chmod($ tmpname、0644); 2か所

(2)システム内でユーザーを空にしますキャッシュとアップロード

2. PHPのsafe_modeの主な機能は、ファイルを読み書きするときに、現在のスクリプトと、読み書きするファイルの所有者が一致しているかどうかをチェックすることです。

ただし、現在のスクリプトの所有者がhostuserの場合、所有者のuploadsディレクトリにあるファイルを削除してもだめです。

したがって、safe_modeはデフォルトではオンになりません。

代替策は次のとおりです。

php_admin_value open_basedir /docrootは、各ユーザーが自分のファイルのみにアクセスすることを制限します。ここでのdocrootはプログラムのルートディレクトリであり、プログラムの下のキャッシュやアップロードディレクトリではありません。ルートディレクトリでない場合は、PHPプログラムにアクセスできません。

3.(保証されていません)すべてのPHPスクリプトは、リモートコード実行とローカルファイルインクルード攻撃をフィルタリングできます。そうでなければ、ハッカーはまだconfig.phpの中のパスワードを読んだり、直接キャッシュの内容を読み書きしたりディレクトリをアップロードするかもしれません。

キャッシュディレクトリ内のデータをユーザーパスワードのように保存することはできません。

4. expose_phpがoffに設定されているため、phpはhttpファイルのヘッダーにPHPのバージョン番号を表示しません。

Copyright © Windowsの知識 All Rights Reserved