エンコードされた javascript: protocol bypass
HTML entity、制御文字、大文字小文字の変形で javascript: URL 検証を迂回できるか確認します。
HTML payload テスト
このシナリオは iframe sandbox ではなく、ユーザー入力が HTML/DOM にどう描画されるかを検証します。
- URL 属性検証の前に entity decoding と制御文字除去を行うか確認
- http, https, mailto など protocol allowlist で検証するか確認
- renderer と sanitizer が同じ正規化規則を使うか確認
Payload
コピーする payload
属性値をデコードした後に protocol を検証するか確認します。
プレビュー
このプレビューは学習用に意図的に unsafe rendering を行います。実サービスでは payload はテキストとしてエスケープされるか除去されるべきです。
ログ
// ログなし
解説
href.startsWith("javascript:")だけの URL filter は entity や制御文字の変形を見逃す可能性があります。- 先に正規化し、ブラウザが解釈する形に揃えてから許可 protocol だけ通します。
- Markdown renderer、link preview、embed card などリンク生成箇所で同じ URL policy を共有します。