×
サイバー攻撃について
  • コメントや掲示板

  • チャット

  • WebSocket

  • ユーザープロフィール

  • CMS

  • Markdown

  • リッチテキストエディター

  • ファイルアップロード

  • SVG表示

  • 管理画面

  • ログビューアー

  • SOCダッシュボード

  • APIからの動的表示

  • postMessage

  • ブラウザーStorage

  • WebView

  • JavaScriptテンプレート

  • 利用者指定URL

  • 外部ウィジェット

  • HTMLメール表示

  • Mermaidや数式レンダリング

特に、次の処理がある場合は優先的に確認します。

innerHTML
outerHTML
insertAdjacentHTML
document.write
eval
new Function
srcdoc
dangerouslySetInnerHTML
v-html
unsafeHTML
safe
mark_safe
autoescape off

原因

XSSの原因は、単なる「入力チェック不足」だけではありません。

主な原因は次のとおりです。

原因1:出力先を考えずに同じエスケープを使う

HTML本文、属性、JavaScript、URL、CSSは、解析規則が異なります。

OWASPも、コンテキストごとに異なる出力エンコードが必要だと説明しています。


原因2:文字列表示にinnerHTMLを使う

単純な文章表示にinnerHTMLを使う必要はありません。