×
サイバー攻撃について

実行場所

プロジェクトのルートディレクトリで実行します。

rg -n --hidden \
  -g '!node_modules/**' \
  -g '!vendor/**' \
  -g '!static/vendor/**' \
  'innerHTML|outerHTML|insertAdjacentHTML|document\.write|eval\(|new Function|srcdoc'

正常例

検索結果なし

または、固定文字列だけを扱う安全な利用箇所だけが表示されます。

異常例

static/js/chat.js:84:messageList.innerHTML += event.data;
static/js/profile.js:41:target.innerHTML = response.display_name;

判断方法

検索結果があるだけで脆弱性とは断定できません。

右辺のデータが次の入力源から来ていないか確認します。

  • URL

  • API

  • WebSocket

  • Storage

  • フォーム入力

  • DB

  • 外部サービス


2. Djangoのエスケープ解除箇所を検索する

目的

Djangoの自動エスケープを迂回している箇所を探します。

実行場所

Djangoプロジェクトのルートで実行します。