メインコンテンツへスキップ
防御・対策

Djangoテンプレート自動エスケープ

Django Template Autoescape

Djangoテンプレートで変数をHTMLへ出力する際、特定の文字をエスケープする既定の仕組み。XSSへの防御を補うが、すべての出力文脈で安全になるわけではない。

HTML向けの処理をJavaScriptやURL等の文脈へそのまま当てはめないことが大切です。自動処理を無効にする設定や安全と印を付ける処理は、未信頼入力に対して安易に使いません。属性の引用、URLの検証、クライアント側のDOM操作も含めて出力先ごとに確認します。

  • 初心者向けには「入力をHTMLの命令として解釈されにくくする出力処理」
  • 出力先の文脈によって必要な保護は変わる
  • 安全扱いにする例外にはレビューが必要
← 用語集一覧に戻る
ESC