0

Secure User Image Upload Capabilities in PHPによると、画像アップロードのセキュリティを管理するための推奨される方法は、受信画像を GD/ImageMagick/... でコピーすることです (そしてランダムな名前で設定します)。

Ok。次の質問があります。

1位。

私たちのページでは、画像をトリミングする可能性があります。そう:

  • まず、ユーザーがアップロードした画像をダウンロードし、ランダムな名前で一時的に保存します。
  • 次に、ビューにロードして、ユーザーがトリミングできるようにします。
  • トリミングした画像はGDで作成しています。

最初に GD で処理せずに画像を読み込むのは危険ですか?

2位

GDで画像を処理するだけで十分ですか?私はこの答えを見てきました:実行可能イメージのアップロードをブロックする (PHP) は、そうではないと言っています (トピックで見た最初のリンクや他の答えとは対照的です)。

ありがとう!

PS: Codeigniter を使用したプログラミング。

4

1 に答える 1

0

1位:

それで十分なはずです。イメージが一時的にのみアクセス可能であり、すべてが完了した直後に削除されることを確認してください (おそらく、一時的なイメージ ディレクトリを頻繁にクリーニングする cron ジョブも設定しますが、それは保存場所によって異なります)。投稿した回答で述べたように、名前をサニタイズし、権限が正しく設定されていることを確認してください。また、ヌルバイトインジェクションとディレクトリトラバーサルにも注意してください(あなたが言及した答えを繰り返すだけです)。getimagesize次に、それが実際の画像であることを確認するために使用して、画像が有効かどうかを確認します。

この問題を完全に回避するクライアント側の html5 ソリューションもありますが、もちろんそれは古いブラウザでは動作しないことを意味します。そしてもちろん、それが言う内容の種類を信用しないでください。

2番目: はい、最初に試してgetimagesize、有効になったら GD で処理すると思います。オプションで、拡張機能をホワイトリストに登録することもできます。

于 2012-05-01T10:38:50.187 に答える