JavaScript Tips | セキュリティ:URLを安全に検証する

JavaScript JavaScript
スポンサーリンク
スポンサーリンク

URLを安全に検証することは「ユーザー入力や外部リンクを“信頼できる経路”だけに限定するための防御技術」

業務システムで URL を扱う場面はとても多いです。

  • ユーザーが入力したリンクを表示する
  • 外部サイトへの遷移ボタンを作る
  • メールに含まれるURLをクリックさせる
  • リダイレクト先のURLをパラメータで受け取る

しかし、URLを そのまま信じて使う と、次のような危険があります。

  • 悪意あるサイトへの誘導(フィッシング)
  • javascript: スキームによる XSS 的な攻撃
  • 社内システムから外部への意図しない情報送信
  • オープンリダイレクト(任意サイトへのリダイレクト)

そこで必要になるのが 「URLを安全に検証する」JavaScriptユーティリティです。

ここから、初心者向けにステップバイステップで解説していきます。

URL検証の目的を整理する(何を防ぎたいのか)

URLを安全に検証する目的は、大きく分けて次の3つです。

  1. 許可されたスキームかどうか確認する
    • http, https だけ許可する
    • javascript:, data: など危険なスキームを拒否する
  2. 許可されたドメインかどうか確認する
    • 自社ドメインだけ許可する
    • 特定の外部サービスだけ許可する
  3. URLとして正しい形式かどうか確認する
    • 不正な文字列や壊れたURLを弾く

この3つを組み合わせることで、 「安全なURLだけを使う」設計ができます。

タイトルとURLをコピーしました