index

2003年 12月
 
  1 2 3 4 5 6 7
  8 9 10 11 12 13 14
  15 16 17 18 19 20 21
  22 23 24 25 26 27 28
  29 30 31        
2004年 1月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
2004年 2月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29

アレ

バックスラッシュ   ▽20040125b #プログラミング #PHP

xBBS に「半角バックスラッシュ + 数字」の書き込みをすると, その部分が消えてしまう,というのがあった. どう見てもダブルクォート文字列のエスケープシーケンスが有効になってるっぽくて, バグやセキュリティホールが裏にあったりしそうでイヤな感じなので,調査.

で,まず DB の中を見ると……あれ,フツーに登録されてる. ってことは表示系か……と調べてみると, どうやら PEAR の HTML_Template_IT クラスでは, setVariable() する文字列に上記のようなバックスラッシュ文字列があると, それをエスケープシーケンスとして解釈してしまう模様. おーい.テンプレートエンジンが与えられた文字列を変更してどーする.

で,上位互換エンジンの HTML_Template_Sigma テンプレートでは, 上記の現象は起きない. めんどくせーから全部を Sigma で統一しちゃいました(ぉ ってことで,バックスラッシュもフツーに使えるぜイエー.

index