3

ユーザーがアップロードした SVG を Web アプリに許可することを検討しています。信頼されていない SVG に多数の複雑な脆弱性が存在することがわかっているため、以前はこれを行うことをためらっていました。同僚が Inkscape の --vacuum-defs オプションを発見し、信頼されていないすべての SVGS を安全に処理できるようにすると考えています。

マンページによると、そのオプションは「SVG ファイルのセクションから未使用の項目をすべて削除します。このオプションを --export-plain-svg と組み合わせて呼び出すと、エクスポートされたファイルのみが影響を受けます。単独で使用すると、指定されたファイルはその場で変更されます。」ただし、同僚によると、「スクリプトは削除され、XML 変換は削除され、不正な形式は許容されず、エンコーディングは削除され、外部インポートは削除されます。

これは本当ですか?もしそうなら、信頼されていない SVG を受け入れても安全だと感じるだけで十分でしょうか? 他に行うべき前処理はありますか?

4

1 に答える 1

1

私が理解しているように、信頼されていない SVG を提供する際の主な懸念は、SVG ファイルに Javascript を含めることができるという事実です。埋め込まれた JavaScript はフォーマットの一部であるため、これは SVG では明らかですが、ブラウザが注意を怠ると、アップロードされたファイルのすべてのタイプで発生する可能性があります。

したがって、最新のブラウザは < img > タグで見つかったスクリプトを実行しませんが、念のため、Cookie/認証が添付されていない別のドメインから画像を提供することをお勧めします。ユーザーのデータを侵害します。それが私の最初の懸念事項です。

もちろん、ユーザーが SVG をダウンロードしてデスクトップから開き、たまたまブラウザーで開いた場合、悪意のある可能性のある読み込みが実行される可能性があります。元の質問に戻ると、 --export-plain-svg はスクリプトを削除しますが、他の SVG 固有の脆弱性については知らないため、チェックしていません。

于 2012-12-15T20:16:33.950 に答える