HTML / escape / context boundary
HTMLのescape contextを分ける
text、attribute、URLで必要な確認を分け、quoteとentityの境界を合成caseで確認します。実HTMLやscriptは扱わず、レビュー票だけをローカルで作ります。
HTML / escape / context boundary
text、attribute、URLで必要な確認を分け、quoteとentityの境界を合成caseで確認します。実HTMLやscriptは扱わず、レビュー票だけをローカルで作ります。
HTML escapeを一つの変換として扱うと、表示・属性・URLの受渡しを混同します。値のcontextと許可条件を分けて記録します。
text ≠ attribute ≠ URL / classify → escape → verify| 軸 | レビュー |
|---|---|
| text | 本文の値をHTMLとして解釈させず表示する。 |
| attribute | 引用符の境界を閉じ、属性を抜ける値を許可しない。 |
| URL | HTML escapeとscheme・URL検証を別条件にする。 |
| quote | single・double quoteとampersandを分けて確認する。 |
| entity | 表示文字と受渡し先のcontextを混同しない。 |
このページは実HTMLを解析・実行せず、ユーザー入力も受け取りません。合成caseだけを扱います。
| case | 結果 |
|---|---|
text-context | Text context |
attribute-context | Attribute context |
url-context | URL context |
quote-boundary | Quote boundary |
entity-reference | Entity reference |
unsupported-script-context | Reject |