2012-07-21 4 views
6

imgタグを介して外部画像を含めることで、私のサイトに表示されるセキュリティホールとその回避方法を教えてください。外部画像の脆弱性

私は現在、唯一の提出上の拡張や画像のmime-typeをチェックしています(URLが提出された後には変更できます)とURLsrc属性にそれを置く前に消毒されます。

+2

拡張子を具体的にどのようにチェックしているのかを尋ねることができます。また、URLを送信した後に変更を加えることができると言ってもいいですか? – Rhys

+0

確かにユーザー(画像が保存されているサーバーの所有者)によって。 AddHandlerを.htaccessに配置し、実行可能ファイルとして.jpegをマークすることはそれほど難しいことではありません。すべてのWebスニッファはこのように作られています – Noobie

答えて

4

が危険にさらされている可能性があります。

URLを保存してサーバーに画像をアップロードしていない場合、サイトは(おそらく)であり、サイトを閲覧するユーザーにとっては危険があります。

本質的に、ブラウザメーカーの信頼性を信頼しています。物事かもしれないかもしれないが、悪意のあるコードを含むイメージを間違って解析することを含むいくつかのブラウザの1つのブラウザのセキュリティホールが使用された場合、それはそれを支払うことになるあなたのユーザーです(あなたはGIFAR興味深い)。

ブラウザの製造元がセキュリティ保護されたソフトウェアを作成することを信頼するかどうか、および特定のブラウザの不正使用を含む可能性のある画像にURLをアップロードしないようにユーザーを信頼するかどうかが決まります。次のリリースでは安全なものは安全ではないかもしれません。

+0

ありがとうございます!良い答えとGIFARに関する情報の共有 – Noobie

3

露出する可能性のある主なホールは、破損したイメージがブラウザ内でバッファオーバーフローを引き起こし、任意のコードを実行できる場所です。

あなただけ<img>タグに画像を入れている場合がありshoudln'tは代替MIMEタイプを送信に関連する脆弱性があることが、いくつかのWebブラウザの開発者の愚かさを過小評価することはありません ...

+0

主な問題はブラウザですか?これらの外部イメージや何かを保護する方法はありますか? – Noobie

+1

それらをダウンロードして、既知の脆弱性をスキャンしてください。しかし、私は誰もが恐れている、それは実際に安全なブラウザを実際に使用することが非常に重要である理由です。今日のすべてのWebブラウザでどのように安全であるかを調べるレポートやプロジェクトがあることを願っています。私のオペレーティングシステムが更新される頻度を見ると、ブラウザは2日ごとに更新する必要があります。 – hakre

3

まあ明らかに、あなたはデータをチェックしていないので、データは何でもかまいません(リモートサーバによって報告されたMIMEタイプが必ずしも真実を伝えるとは限りません)。さらに、あなたが言ったように、リモートサーバー上のデータは、提出後も見たことがないので、変更することができます。

このように、リンクが< img src = "..."/>と表示されている場合、画像処理でブラウザが持つ脆弱性が悪用される可能性があります。

URLを「サニタイズ」することは何の助けにもなりません。誰かが「悪い」画像を指すリンクを送信しても、自分のサーバーを攻撃することはありません。

+0

CSRFはどうですか? XSS? – Noobie

+0

データにはどのようなチェックを行う必要がありますか? – Noobie