MW211 EXIT

devlog
jQuery/エスケープ有無と出力
2018年05月12日
エスケープの有無と.text()および.html()の関係は以下の通り。
┌──────────────┬───────┬───────────────┐
│           入力元           │     動作     │             結果             │
├──────────────┼───────┼───────────────┤
│以下を未エスケープ          │.html()で出力 │×XSS対策漏れ                 │
│<script>alert("@");</script>│              │  JavaSciptが動作             │
│                            │              │  (「@」ダイアログが出力)     │
├──────────────┼───────┼───────────────┤
│以下をエスケープ済み        │.html()で出力 │○OK                          │
│<script>alert("@");</script>│              │  文字列として以下が表示      │
├──────────────┼───────┤  <script>alert("@");</script>│
│以下を未エスケープ          │.text()で出力 │                              │
│<script>alert("@");</script>│              │                              │
├──────────────┼───────┼───────────────┤
│以下をエスケープ済み        │.text()で出力 │×文字化け                    │
│<script>alert("@");</script>│              │  文字列として以下が表示      │
│                          &lt;script&gt;alert(&quot;@&quot;);&lt;/script&gt;│
└──────────────┴───────┴───────────────┘
分類:jQuery