×
サイバー攻撃について

textContentやDOM生成APIを使います。


原因3:フレームワークの安全機能を無効化する

代表例は次のとおりです。

  • Djangoのsafe

  • Djangoのmark_safe

  • {% autoescape off %}

  • ReactのdangerouslySetInnerHTML

  • Vueのv-html

  • AngularのbypassSecurityTrustAs*

  • LitのunsafeHTML

OWASPも、現代的なフレームワークには自動エスケープがある一方、安全機能を迂回するAPIがXSSの原因になると注意しています。


原因4:サニタイズ後に再加工する

入力
 ↓
サニタイズ
 ↓
文字列置換・連結
 ↓
innerHTMLへ再投入

この流れでは、サニタイズ後に再び危険な構造が生まれる可能性があります。


原因5:JSONやWebSocketなら安全だと思い込む

JSON、WebSocket、APIは配送方法です。

受信した値をHTMLとして解釈すればXSSになります。


原因6:管理画面を信頼している

管理画面が表示するデータも、元をたどれば攻撃者が入力した値かもしれません。

管理者しか見ない画面ほど、Blind XSSの影響が大きくなります。


確認方法

1. JavaScriptの危険なSinkを検索する

目的

フロントエンドコードから、XSSにつながりやすいDOM APIを探します。