[Codeigniter-users] 【注意喚起】CodeIgniter 1.7.2 Formヘルパーの脆弱性

Back to archive index

Kenji Suzuki kenji****@gmail*****
2010年 3月 19日 (金) 08:56:23 JST


Kenji です。


On Thu, 18 Mar 2010 23:55:13 +0900
溝口 令雄 <mizog****@gmail*****> wrote:

> お世話になっております。溝口です。
> 
> kunitsuji <tsuji****@m-s*****> さんwrote:
> 
> > たとえば、htmlspecialchars()を、開発者が普通に記述すれば問題ないわけ
> > です
> > よね?
> > <input type="text" name="hoge" value="<?php echo htmlspecialchars
> > (set_value('hoge')) ;?>"
> 
> これを実行すると、hoge の値が & だった場合、エスケープが二重にかかって
> 出力は、
> 
> &amp;amp;
> 
> となりました。

ああ、これは 2回目以降だけ htmlspecialchars() かけるということですね。
二重にかけてはいけません。


> XSS対策はCodeIgniterではグローバルにでもリクエスト毎にでも設定出来ます
> し、Formバリデーションクラスでも各フィールド値へのルール設定でxss_
> clean(またはhtmlspecialchars等)を指定すればエスケープした形で整形され
> ると思うのですが、

XSSフィルタはエスケープしません。危険そうな文字を削除するという
サニタイズ処理になります。

参考
http://d.hatena.ne.jp/uratch/20100120/1263958813


また、ユーザガイドにも記載されていますが、非常に重いのでグローバル
に適用することは推奨されません。


// Kenji


> > ※ただし、1回目はかかって2回目はかからない、ということなので、明らか
> > におかしいとは思います。
> 
> ですよね・・
> 「各開発者の意図は関係なく、1回目は勝手にエスケープしてしまう」という
> のがおかしいような気もしてきました。
> 
> よろしくお願いいたします。
> 
>                                           __________________________
> _________________________________________/   Original Message
> Subj: Re: [Codeigniter-users] 【注意喚起】CodeIgniter 1.7.2 Formヘルパー
> の脆弱性
> From: kunitsuji <tsuji****@m-s*****>
> To  : codei****@lists*****
> Cc  : --
> Date: 2010/03/18 15:10:21
> 
> >  kunitsujiです。
> > 
> > たとえば、htmlspecialchars()を、開発者が普通に記述すれば問題ないわけ
> > です
> > よね?
> > <input type="text" name="hoge" value="<?php echo htmlspecialchars
> > (set_value('hoge')) ;?>"
> > 
> > この、set_value()そのものが、htmlspecialchars()をかけているので変換さ
> > れ
> > ますよ、
> > という仕様であれば、届出が必要だと思いますが、
> > どちらなんでしょう?
> > そういう仕様ではない場合、CIの脆弱性ではなく、PHPの開発者の問題ではな
> > い
> > かと思います。
> > たとえば、普通にPHPのPOSTで受け取った値をhtmlspecialchars()で使うとい
> > う
> > のが当たり前になっていますが、そこでそれを使うかどうかは開発者の知識
> > の問
> > 題であり、知ることは必要ですが、CIのset_value()の脆弱性といえるのでし
> > ょ
> > うか?
> > 
> > 
> > ※ただし、1回目はかかって2回目はかからない、ということなので、明らか
> > にお
> > かしいとは思います。
> > 
> > 問題は1回目がかかり、2回目がかからない、という部分ですね。
> > このあたりのCI開発側の見解をしりたいですが。
> > 
> > 仮に、あくまでもそういう仕様である、ということであれば、、、
> > 2回目に開発者自らhtmlspecialchars()を適用すればいいことであります。
> > その場合、報告の内容が変わってくると思いますが。
> > 
> > 2回目以降もかかるべきものが、かかっていない、という認識、仕様であれば、
> > set_value()の扱い方の注意勧告としてでるべきではないかと思います。
> > 
> > 
> > 
> > >Kenji です。
> > >
> > >
> > >On Wed, 17 Mar 2010 14:29:36 +0900
> > >溝口 令雄 <mizog****@gmail*****> wrote:
> > >
> > >> ■脆弱性関連情報の届出
> > >>   http://www.ipa.go.jp/security/vuln/report/
> > >> 
> > >> には登録されてますでしょうか?
> > >
> > >してません。もともと私が見つけたときには、すでに本家 Forum に
> > >あがっている情報でしたし、届け出などはするつもりがなかったので
> > >勝手に公表してます。
> > >
> > >
> > >> JVNで周知されるべきレベルの問題のようにも思います。
> > >
> > >そうですね。そういうルートでやるのもいいかもしれませんね。
> > >
> > >JVN で周知されるべきだとの考えに賛同される方のどなたか
> > >お願いします。私はすでにガイドラインにしたがっていないので。
> > >
> > >
> > >// 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
> ____________________________________________________________________
> 
> 
> __________________________________________________Javable.Jp
> 
> 溝口 令雄 / Reo MIZOGUCHI
> mizog****@javab*****
> http://www.javable.jp/
> 
> 〒174-0063 東京都板橋区前野町3-33-1-402
> Tel & Fax : 03-6318-6858 / K-TAI : 090-8053-0329
> Skype ID : reomi2002
> ____________________________________________________________
> 
> _______________________________________________
> Codeigniter-users mailing list
> Codei****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users




Codeigniter-users メーリングリストの案内
Back to archive index