コメントや掲示板
チャット
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の原因は、単なる「入力チェック不足」だけではありません。
主な原因は次のとおりです。
HTML本文、属性、JavaScript、URL、CSSは、解析規則が異なります。
OWASPも、コンテキストごとに異なる出力エンコードが必要だと説明しています。
単純な文章表示にinnerHTMLを使う必要はありません。