Closed momdo closed 9 years ago
仕様としては、<
がほぼ必須で、&
は#か英数字が続くと必須、"
や>
、'
は状況に応じてということになってます。しかし、ベスト・プラクティスとしてはこの5種にしておいた方が良さそうですかね?
そうですね。実際は必要ない場合もあるんですが、5種書いておいてもいいと思います。
okuryuさまも言われているように、検討するならその5種類になるかと。個人的には<
と&
ついでに>
は必ずエスケープするようにはしていますが、"
や'
はエスケープしていないですね…5種類全部となると相当安全よりなイメージでそこまでする必要があるのか?と言われると知見がないです…。
JavaScriptやサーバーでの動的な生成はともかく、静的なジェネレーター系(Markdown的なものやHTML編集アプリケーション)での生成については考えてやる必要があります。とするとコンテキストでの調節が必要になる"
や'
も統一してエスケープした方がシンプルで、安定したHTMLに役立つと言えそうです。
& have been escaped as &
Bad:
Good:
アンパサンドはいつでもエスケープしてしまう。