【要約】The Woes of Sanitizing SVGs [Hacker_News] | Summary by TechDistill
> Source: Hacker_News
Execute Primary Source
// Discussion Topic
SVGが抱える構造的な脆弱性と、サニタイズの限界。
- ・XML形式による<script>タグの混入リスク。
- ・CSSやイベントハンドラを用いたXSS攻撃。
- ・パーサー間の解釈の差異による防御バイパス。
- ・アニメーション等の高度な機能と安全性の両立。
// Community Consensus
- ・否定派: 自作のサニタイザは「死への近道」。
- ・肯定派: 適切なライブラリ使用は必須。
- ・結論: 完璧なサニタイズは存在しない。
- ・回避策: <img>タグでの表示が最も安全。
- ・代替案: サーバー側でのラスタライズ。
// Alternative Solutions
- ・DOMPurify: デファクトスタンダードなライブラリ。
- ・<img>タグによるカプセル化: スクリプト実行を強制的に無効化。
- ・サーバーサイドでのラスタライズ: PNGやWebPへの変換。
- ・Content Security Policy (CSP): ブラウザ側での実行制限。
// Technical Terms
Senior Engineer Insight
> SVGの扱いは「地雷原」である。単一のライブラリに依存するのはリスクが高い。ブラウザごとのパース挙動の差を常に考慮せよ。我々のプロダクトに導入する場合、以下の3点を条件とする。
1.DOMPurify等の実績あるライブラリの採用。
2.可能な限り<img>タグによる表示制限。
3.サーバーサイドでの検証とラスタライズの検討。
クライアントサイドのみの防御は、絶対に認めない。