×
サイバー攻撃について

特に危険なのは、JavaScriptからネイティブ機能を呼び出せるBridgeがある構成です。

WebView内でXSS
        ↓
JavaScript Bridgeへアクセス
        ↓
ネイティブ機能を呼び出す
        ↓
端末側の処理へ影響

対策には、Webコンテンツの安全化だけでなく、公開するネイティブAPIの最小化が必要です。


ファイル・Markdown・ログ画面のXSS

File Upload XSS


利用者がアップロードしたファイルを、同一オリジンでHTMLとして表示するとXSSになる場合があります。

注意が必要な形式は次のとおりです。

  • HTML

  • XHTML

  • SVG

  • XML

  • MHTML

  • 不正なContent-Typeを持つファイル

  • HTMLを含む複合形式

  • 利用者が指定したファイル名

Django公式ドキュメントでは、有効なPNGヘッダーの後ろへHTMLを付加したファイルが画像検証を通過し、Webサーバー設定によってはHTMLとして表示される例が説明されています。アップロードファイルを別のトップレベルドメインまたはセカンドレベルドメインから配信する対策も推奨されています。


Markdown XSS


Markdownだから安全とは限りません。

次の構成ではXSSが起こる可能性があります。