「サニタイズ言うなキャンペーン」私の解釈

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から始まって、JSPPHP、ERBと受け継がれてきた、 HTML中にプログラムを埋め込むというこの仕組みが、最初からデフォルトでエスケープされるように作られていたらよかったのに……と思えてくる、そんな今日この頃だ。

確かにタグを出力する、って時に意識的にエスケープを外させるほうがよいのかも。あ、でも helper 関数とか使っちゃうとアレかな。