📰
SecurityAnnouncementEN → JA
44

azukiazusa · 1307日前

React は javascript スキームを使った XSS を防ぐことができない

要約

Reactは通常、HTMLエスケープによってクロスサイトスクリプティング(XSS)を防ぎますが、`<a>`タグの`href`属性に`javascript:`スキームを含むURLが直接設定された場合、この保護は機能しません。ユーザーからの入力や信頼できないソースのコンテンツを`href`に直接渡すと、悪意のあるJavaScriptが実行される危険性があります。`dangerouslySetInnerHTML`だけでなく、通常のprops経由でも`javascript:`スキームが許容されるため、開発者はURLサニタイズを徹底する必要があります。

📌

Key Points

  • •ReactのXSS対策は主にHTMLエスケープであり、`href`属性に指定された`javascript:`スキームのURLは防げない。
  • •ユーザー入力や外部ソースからの`javascript:`スキームを含むURLを`<a>`タグの`href`に設定するとXSSのリスクがある。
  • •`dangerouslySetInnerHTML`だけでなく、通常のprops経由でも`javascript:`スキームの実行が可能であり、URLサニタイズが必須である。

Why it matters

Reactアプリケーションにおいて、ユーザーからの入力や外部データを扱う際にURLのサニタイズを怠ると、予期せぬXSS脆弱性を生み出す可能性があるため、開発者はこの特性を理解し対策を講じる必要があります。

関連エンティティ
ReactJavaScriptXSSDOMPurify