溝口 令雄
mizog****@gmail*****
2010年 4月 6日 (火) 18:03:14 JST
お世話になっております。溝口です。 Kenji Suzuki <kenji****@gmail*****> さんwrote: > となると、この if文自体を削除した方がいいでしょうかね。 > > if (isset($prepped_fields[$field_name])) > { > return $str; > } ここを削除すると確かに前の値は残らなくなりますが、 set_value() を2度呼び出した場合、& が 1度目では $amp; 2度目では &amp; と変換されるようになります(※)。 パッチ適用時には、※の問題は起こりません。 よろしくお願いいたします。 __________________________ _________________________________________/ Original Message Subj: Re: [Codeigniter-users] 【注意喚起】CodeIgniter 1.7.2 Formヘルパー の脆弱性 From: Kenji Suzuki <kenji****@gmail*****> To : codei****@lists***** Cc : -- Date: 2010/04/06 17:09:36 > Kenji です。 > > > On Tue, 06 Apr 2010 15:12:43 +0900 > 溝口 令雄 <mizog****@gmail*****> wrote: > > > Kenji 様 > > > > お世話になっております。溝口です。 > > > > Kenji Suzuki <kenji****@gmail*****> さんwrote: > > > > > CodeIgniter 1.7.2 の Formヘルパー の set_value() で同じフィールド > > > を > > > 2回目以上表示すると 2回目以降は文字参照に変換されず XSS脆弱性にな > > > る > > > 可能性があります。 > > > > > > 詳細 > > > http://d.hatena.ne.jp/Kenji_s/20100316/1268701194 > > > > 上記ページに記載して頂いたパッチを当てたところ、たとえば > > > > ---------- > > <?php foreach ($rows as $idx => $row): ?> > > ...(中略)... > > <?= form_input(array( > > 'name' => F_SORT . '[]', > > 'value' => $row[DBC_SORT], // (A) > > 'size' => '2', > > 'tabindex' => $idx + 1 > > )) . LF ?> > > ...(中略)... > > <?php endforeach; ?> > > ---------- > > > > のようにform_input()関数をループ中で繰り返し呼び出している箇所で、 > > value属性に指定している(A)の値($row[DBC_SORT]の値)が常に$rowsの > > 1番目の要素の値になってしまいました。 > > パッチを元に戻すとこの現象は起こりません。 > > > > これはどのように対処すべきでしょうか? > > なるほど。そうですか。 > > となると、この if文自体を削除した方がいいでしょうかね。 > > if (isset($prepped_fields[$field_name])) > { > return $str; > } > > > // Kenji > > > > よろしくお願いいたします。 > > > > > > ________________________ > > __ > > _________________________________________/ Original Message > > Subj: [Codeigniter-users] 【注意喚起】CodeIgniter 1.7.2 Formヘルパー > > の > > 脆弱性 > > From: Kenji Suzuki <kenji****@gmail*****> > > To : codei****@lists***** > > Cc : -- > > Date: 2010/03/16 10:07:28 > > > > > Kenji です。 > > > > > > > > > CodeIgniter 1.7.2 の Formヘルパー の set_value() で同じフィールド > > > を > > > 2回目以上表示すると 2回目以降は文字参照に変換されず XSS脆弱性にな > > > る > > > 可能性があります。 > > > > > > 詳細 > > > http://d.hatena.ne.jp/Kenji_s/20100316/1268701194 > > > > > > これ、なかなか修正されないのでバグでないのかも知れませんが。 > > > このバグに当たるような実装をすることは少ないと思いますが、知らず > > > に > > > やってしまうと危険ですので、注意喚起しておきます。 > > > > > > > > > 本家では、以下に書き込みがあります。バグだと思われる方は、「バグ > > > なの > > > で > > > 直してくれ」みたいなことを書き込んでもらえるといいかもしれません。 > > > > > > * http://codeigniter.com/bug_tracker/bug/11284/ > > > * http://codeigniter.com/forums/viewthread/139112/ > > > > > > > > > // Kenji > > > > > > _______________________________________________ > > > Codeigniter-users mailing list > > > Codei****@lists***** > > > http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users > > __________________________________________________________________ > > __ > > > > _______________________________________________ > > Codeigniter-users mailing list > > Codei****@lists***** > > http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users > > _______________________________________________ > Codeigniter-users mailing list > Codei****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users ____________________________________________________________________