img
タグを介して外部画像を含めることで、私のサイトに表示されるセキュリティホールとその回避方法を教えてください。外部画像の脆弱性
私は現在、唯一の提出上の拡張や画像のmime-type
をチェックしています(URL
が提出された後には変更できます)とURL
はsrc
属性にそれを置く前に消毒されます。
img
タグを介して外部画像を含めることで、私のサイトに表示されるセキュリティホールとその回避方法を教えてください。外部画像の脆弱性
私は現在、唯一の提出上の拡張や画像のmime-type
をチェックしています(URL
が提出された後には変更できます)とURL
はsrc
属性にそれを置く前に消毒されます。
が危険にさらされている可能性があります。
URLを保存してサーバーに画像をアップロードしていない場合、サイトは(おそらく)であり、サイトを閲覧するユーザーにとっては危険があります。
本質的に、ブラウザメーカーの信頼性を信頼しています。物事かもしれないかもしれないが、悪意のあるコードを含むイメージを間違って解析することを含むいくつかのブラウザの1つのブラウザのセキュリティホールが使用された場合、それはそれを支払うことになるあなたのユーザーです(あなたはGIFAR興味深い)。
ブラウザの製造元がセキュリティ保護されたソフトウェアを作成することを信頼するかどうか、および特定のブラウザの不正使用を含む可能性のある画像にURLをアップロードしないようにユーザーを信頼するかどうかが決まります。次のリリースでは安全なものは安全ではないかもしれません。
ありがとうございます!良い答えとGIFARに関する情報の共有 – Noobie
露出する可能性のある主なホールは、破損したイメージがブラウザ内でバッファオーバーフローを引き起こし、任意のコードを実行できる場所です。
あなただけ<img>
タグに画像を入れている場合がありshoudln'tは代替MIMEタイプを送信に関連する脆弱性があることが、いくつかのWebブラウザの開発者の愚かさを過小評価することはありません ...
まあ明らかに、あなたはデータをチェックしていないので、データは何でもかまいません(リモートサーバによって報告されたMIMEタイプが必ずしも真実を伝えるとは限りません)。さらに、あなたが言ったように、リモートサーバー上のデータは、提出後も見たことがないので、変更することができます。
このように、リンクが< img src = "..."/>と表示されている場合、画像処理でブラウザが持つ脆弱性が悪用される可能性があります。
URLを「サニタイズ」することは何の助けにもなりません。誰かが「悪い」画像を指すリンクを送信しても、自分のサーバーを攻撃することはありません。
拡張子を具体的にどのようにチェックしているのかを尋ねることができます。また、URLを送信した後に変更を加えることができると言ってもいいですか? – Rhys
確かにユーザー(画像が保存されているサーバーの所有者)によって。 AddHandlerを.htaccessに配置し、実行可能ファイルとして.jpegをマークすることはそれほど難しいことではありません。すべてのWebスニッファはこのように作られています – Noobie