XSS (Cross-Site Scripting) とは、Web アプリケーションの脆弱性を悪用して、ページに悪意のある JavaScript コードを注入し、ユーザーの Cookie、セッション情報、個人データなどを窃取する攻撃手法です。 OWASP Top 10 の 2025 年版では、XSS は A05 Injection (インジェクション) の中に含まれています。
OWASP の XSS の解説 (2026 年 10 月時点) によると、XSS は一般に反射型と格納型に分けられ、それとは別にあまり知られていない DOM ベース XSS があります。それぞれ、反射型 XSS (URL パラメーターに含まれたスクリプトがそのままページに表示される)、格納型 XSS (データベースに保存されたスクリプトが他のユーザーに表示される)、DOM ベース XSS (クライアントサイドの JavaScript で DOM を操作する際に発生する) です。
OWASP の XSS 対策のチートシート (2026 年 10 月時点) は、単独で XSS を解決する手法は無く、防御の手法を正しく組み合わせる必要があると説明しています。最も効果があるとされるのは、フレームワークの保護機能、出力時のエンコード (< を < に、 > を > に変換するなど)、HTML のサニタイズの 3 つです。 HttpOnly などの Cookie の属性は XSS の被害を限定するものの防ぐものではなく、CSP ヘッダーは主な防御ではなく追加の層として使うよう勧めています。
短縮 URL サービスでは、ユーザーが入力した URL をページ上に表示する際に XSS のリスクがあります。特に javascript: スキームの URL を許可すると、リンクをクリックした際に任意の JavaScript が実行されます。 OWASP のチートシートも、信頼できない URL をリンク先に使う場合は、プロトコルが http:// と https:// の URL だけを許可する方法を対策の例に挙げています。