0

画像アップロードサイトがあります。誰かがここにシェル ファイルをアップロードしています。私の検証は次のとおりです。 - ファイルの MIME をチェックします (イメージの MIME のみが可能です) - getimagesize が配列を返すかどうかをチェックします (is_array による) そうでない場合はエラーです。それでも、誰かがシェル ファイルをアップロードしています。助けてください。ありがとうございます!

ちょっとしたチェック:

$ext = ($_FILES['files']['type']); 

if (($ext != "image/jpeg") && ($ext != "image/pjpeg") && ($ext !="image/png") && ($ext != "image/gif") && ($ext != "image/bmp") && ($ext != "image/x-icon") && (!is_array(getimagesize($_FILES['files']['tmp_name'])))) {

    // Show error
} else {
    // Keep upload...
}
4

1 に答える 1

1

ファイルのアクセス許可を確認する必要があります。これは php によって実行されるべきではありません。画像のラスター データ マトリックスにデータを格納するのは簡単です (明らかに)。

これらの罪のないクラゲを見てください:

無実のクラゲ

Stackoverflow は無実の .BMP を .PNG に変換しました

元の .bmp は友人のサーバーにあります。左下隅を見ると、ピクセル データに書き込まれた ASCII データに対応する奇妙なピクセルが表示されます。

シェル ファイルを回避するには、画像のすべてのピクセルを少し変更する変更を適用する必要があります。

私には、変換 (圧縮) は良いスタートに思えます。

幸運を !

于 2013-05-20T00:38:43.280 に答える