2

私たちのウェブホスティングがLinuxであり、phpがインストールされていると仮定します。1-画像の代わりにphpコードをアップロードできる場合に発生する可能性のある最悪の事態は何ですか。

2-侵入者はどういうわけか私のデータベースパスワードを取得できますか?画像が保存されるディレクトリに777のファイル権限があるとします。

3-イメージディレクトリに644の権限がある場合はどうなりますか?

私の質問への答えは、これら2つに与えられたものと組み合わせることができます:セキュリティ:画像ファイルのアップロードを検証する方法は?画像のアップロードを受け入れる際のセキュリティの問題

4

2 に答える 2

3

画像の代わりにPHPコードをアップロードできる場合、最悪の事態が発生する可能性があります。

最悪の場合:侵入者は任意のPHPコードを実行でき、サーバー上で任意のコードを実行する可能性もあります。攻撃者がシステム管理者ではないのに十分賢い場合は、サーバー/サブネット/ネットワーク全体を所有している可能性があります...

侵入者はどういうわけか私のデータベースパスワードを取得できますか?画像が保存されるディレクトリに777のファイル権限があるとします。

攻撃者がPHPコードを実行できる場合(もちろんセキュリティ対策によって異なります)、攻撃者は現在のユーザーからファイルを確実に読み取ることができるため、答えはおそらく「はい」です。

イメージディレクトリに644の権限がある場合はどうなりますか?

PHPをCGIモードで使用しない限り、Webサーバーがスクリプトを実行するために実行ビットは必要ないはずなので、それだけでは役に立ちません。


もちろん、それらはあなたが尋ねるべき質問ではありません。あなたが尋ねるべき質問は、攻撃者が最初に実行可能なPHPファイルをアップロードするのを防ぐ方法です。それに対する私の答えは、ファイル拡張子をホワイトリストと照合し、他のすべてを削除する必要があるということです。たとえば、次のようになります。

$pattern = "/\.(jpe?g|gif|png)$/iD";
if (!preg_match($pattern, $filename))
    die("Please don't.");
于 2012-08-20T22:40:00.517 に答える
2

画像ディレクトリ内のphpファイルの解析を許可しないようにする必要があります。これは、一般に公開されることを想定しているためです。

これは、/ images/.htaccessファイルで次のように行うことができます。

RemoveHandler .php .phtml .php3
RemoveType .php .phtml .php3

そうすれば、domain.com / images / hackdatabase.phpにアクセスしようとすると、ファイルではなくコードが返されます。

ただし、そもそも画像であることを確認する必要があります。

于 2012-08-20T22:39:21.120 に答える