たとえば、次の HTML を見てください。
<td onclick="$(this).html('Wanted HTML: <br>; Unwanted HTML: <script>alert('xss')</script>')">
Click to Show</td>
ご覧のとおり、不要な HTML は既に (PHP を使用して) エンティティにエスケープしています。しかし、ボックスをクリックすると、JavaScript が実行されます。
に変更.html
すると.text
、改行も文字通り表示されます。
<br>
ボックスをクリックすると、sが改行として表示されますが、s<
と>
s は文字通り小なり大なり記号として表示されますか?