「サニタイズ言うなキャンペーン」私の解釈
http://kmaebashi.com/zakki/zakki0042.html
/:.:.:.:.:/:/:.:.:.:.:./:.:.:. / ''' ヽ ヽ ヽ、 /:.:.:.:.:/:/:.:.:./:.:.:.:. , 、 ヽ \ l:.:.:.:.:.:l:.l:.:./:.:.:.:.:. / :.:.:.:/ .l:.:.:.:.:.: ヽ:. ヽ:. l:.:.:.:.:.l:.:l:/:.:.:.:.:.:.:. :.ノ :.:.:./:. ,:./|:.:l:.:.:.:. . ヽ:.: l:.:.:.:.:.l:.ノ:.:.:.:.:.:.:.:.: /ヘ:.:.:./:.:.イ/:.l:.:.l:.:.:.:. :.: |:.:.:.:.:k:.:.:.:.:.:.:.:.:.:. 〃|,,,,ヽ,,ノ/:.:.ノ:/l:.:.:.:.:.:.:. ノ l:.:. l:.:.:.:.lヽ:.:.:.:.:.:.:.:.:. 〃/''/:::::::::l`ヽ_-_l:.:.:.:.:.:. /:l:.l:.l:. l:.:.:.:.|:./,、:.:.:.:.:.:._ノ;;; l ' l::::::ヽノ,ヽノ:.:.:.:.//:::::ノヽヽ l :.:.:.|:l l ヽ、:.:.:.:.l`l ii ヽノ. ii /:.,- ´ l ´:::ヽ_l l :.:.l:.ヽヽ ヽ - _l , __ヾ_ -- ´ '´ l `~ ) '/:.:.:.:, -´/:./ l :.:.l:.:ll:.:ヽ_ヽ:.:. `(_ `) `~` -' / - ´ /-´ /l :.:.l:.ll:.:.l:[]:.ヽ:.. `  ̄´-‐‐- _ (  ̄`ヽ l / l :.:l:.ll:.l:.:():.:.:.)-、 / ` - _ ` -- / / :.l :.:l:ll:/:.:'-'-l':.:.:.:ll`: ! _ `) _ -ヽ ./ :.:.l :.:l:ll:.:_ -! l:.:.:.:.:l ヽ:.:.:.:` -___ ___ ノ-イ´i l ll / .:.:.l :.:l- ´ | l _ヽ _ll___〃イ ヽ--- _ll: l ./ // l l ` ‐  ̄ ~/ ヽ ヽ ` - _ サニタイズって言うなー!
どこでエスケープされてるのかワケワカになり二重にエスケープしたり仕損ねちゃったりすることはよくあること。
http://takagi-hiromitsu.jp/diary/20051227.html#p02
そのようにして考えると、そもそも、ASPから始まって、JSP、PHP、ERBと受け継がれてきた、 HTML中にプログラムを埋め込むというこの仕組みが、最初からデフォルトでエスケープされるように作られていたらよかったのに……と思えてくる、そんな今日この頃だ。
確かにタグを出力する、って時に意識的にエスケープを外させるほうがよいのかも。あ、でも helper 関数とか使っちゃうとアレかな。