URL比較のためのUnicode正規化
Unicode正規化がURLと国際化ドメイン名(IDN)にどう影響するかを理解します。比較前の正規化が重複検出の失敗を防ぐ理由を学びます。
Use Cases
詳細な説明
URLでの正規化
URLは2つの方法でUnicode文字を含むことができます:国際化ドメイン名(IDN)で直接、パスとクエリコンポーネントでパーセントエンコードされた形式です。
国際化ドメイン名(IDN)
IDN標準(IDNA2008)はPunycode変換前にNFC正規化を要求します。入力がNFC正規化されていない場合、同じ視覚的ドメインの異なるUnicode表現が異なるPunycode文字列を生成します。
パーセントエンコードされたパス
/caf%C3%A9 (NFC)
/cafe%CC%81 (NFD)
デコードすると同じに見えますが、異なるリソースを指す可能性のある異なるURLです。
セキュリティへの影響
攻撃者は異なる正規化形式を使用して、同じに見えるが異なるリソースを指すURLを作成し、フィッシング攻撃やキャッシュポイズニングを可能にします。
ユースケース
Webクローラー、URL重複排除システム、CDNキャッシュキー生成、等価なURLを検出する必要があるセキュリティツールにとって重要です。ユーザー提供のURLを処理する国際化Webアプリケーションにも重要です。