Agent Skills by ALSEL
Anthropic Claudeセキュリティ⭐ リポ 16品質スコア 77/100

open-redirect

リクエストパラメータ、フォーム入力、またはその他の呼び出し元が制御するソースからURLにユーザーをリダイレクトするコードを書く際に使用します。また、「return to」URLやOAuthコールバックリダイレクトを含むログインフローを構築する際にも活用できます。

description の原文を見る

Use when writing code that redirects users to a URL from request parameters, form input, or any caller-controlled source. Also invoke when building login flows with "return to" URLs or OAuth callback redirects.

SKILL.md 本文

オープンリダイレクトセキュリティチェック (CWE-601)

チェック内容

攻撃者が信頼できるドメインからユーザーを悪意のあるサイトにリダイレクトするリンクを作成するオープンリダイレクト脆弱性から保護します。フィッシングキャンペーンで悪意のあるリンクを正当なものに見せかけたり、OAuthフローで認可コードを窃取したりするために使用されます。

脆弱なパターン

  • redirect(request.args["next"]) — 呼び出し元が提供するあらゆるURLにリダイレクト
  • http.Redirect(w, r, r.URL.Query().Get("return"), 302) — 検証なし
  • response.sendRedirect(req.getParameter("url")) — Java の検証されていないリダイレクト
  • window.location = params.get("redirect") — クライアント側のオープンリダイレクト

すぐに修正

脆弱なコードをフラグ付けし、リスクを説明します。その後、以下のプロパティを確立する修正を提案します:

  1. すべてのリダイレクト対象は相対パスであるか、完全一致するホストの許可リストのメンバーです。 URLを解析し、ホストを検査し、許可リスト外のものは拒否します。プリフィックスマッチング (startswith) は不十分です — allowed.com.evil.com はプリフィックスチェックに合格してしまいます。
  2. スキーム相対URLは明示的にブロックされます。 // で始まる値はプロトコル相対URLとして解析され、その後に続くホストにリダイレクトします。http:// / https:// だけをチェックするとこれを見落とします。
  3. OAuthおよびログイン「リターント」パラメータは、他のリダイレクト対象と同じバリデータを通ります。 これらは認証されたコンテキストで実行されるため、最も価値の高いターゲットです。ここでのリダイレクトは、攻撃者にログイン後のセッションまたは認可コードを与えます。
  4. 検証失敗時には、悪意のあるURLを含むエラーをエコーバックするのではなく、安全なデフォルト (/、ホーム、ダッシュボード) にリダイレクトします。 これをエコーバックすると、攻撃者に反射型XSS表面を与えてしまいます。

アンカー — 実装ではなく形状:

def safe_redirect(target):
    if target.startswith("//"): return "/"       # block scheme-relative
    u = parse(target)
    if u.host and u.host not in ALLOWED_HOSTS: return "/"
    return target

検証

  • ユーザー入力から派生するすべてのリダイレクト対象は、相対パスまたは明示的なホスト許可リストのメンバーとして検証されている
  • スキーム相対URL (//evil.com) がブロックされている — http://https:// だけではない
  • OAuthおよびログイン「return_to」パラメータはリダイレクト前に検証されている

参考資料

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
thejefflarson
リポジトリ
thejefflarson/soundcheck
ライセンス
MIT
最終更新
2026/4/26

Source: https://github.com/thejefflarson/soundcheck / ライセンス: MIT

本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: thejefflarson · thejefflarson/soundcheck · ライセンス: MIT