ユーザーが画像をアップロードできる機能を自分のサイトに追加したいのですが、安全に行いたいです。つまり、画像に含まれる可能性のある EXIF データと悪意のあるコードを削除したいと考えています。ファイルを直接操作してこれを行う方法を考えていましたが、提供された画像を BMP に変換してから元の形式に戻す方が理にかなっているのではないでしょうか? それは世代の損失を被るでしょうが、それは私のプロジェクトの要件を満たすと信じています. BMP には EXIF が含まれていませんね。また、再処理により、悪意のあるコンテンツが削除されます。
1 に答える
3
BMP である必要さえありませんimagecreatefrom[xyz]
。PHP の GD 関数を使用し、.
もちろん、脆弱性がGD自体でいつか発見されるというリモートの(そして無視できる)可能性を除けば、それはかなり水密であるはずです.
私が考えることができる制限と警告:
透明な画像は問題になる可能性があります。特に透明な GIF には特別な処理が必要になるでしょう (新しい画像に透明な色を割り当てるなど、よくわかりません)。
アニメーション GIF はこの方法で破棄され、GD では処理できません。
このメソッドは、PHP のメモリ制限によって制限されます (サイズ変更操作には、少なくとも {画像の幅} x {画像の高さ} x 3 バイトが必要です)。
プログレッシブ JPG、CMYK JPG などのよりエキゾチックなサブフォーマットは問題を引き起こす可能性がありますが、IMO では問題ありません。後者はとにかく IE では表示されません。
于 2010-06-06T13:04:12.773 に答える