[PHP-doc 658] Re: mbstring の新関数のマニュアルについて

Rui Hirokawa rui_hirokawa @ ybb.ne.jp
2006年 9月 22日 (金) 08:19:46 JST


廣川です。

komura wrote:
> komura です。
> 
> On Mon, 18 Sep 2006 03:51:51 -0900
> Rui Hirokawa <rui_hirokawa @ ybb.ne.jp> wrote:
> 
>>>> あと、(マニュアル通りで実害はありませんので)大したことではない
>>>> のかもしれませんが、mb_check_encoding() が引数なしで使用できます。
>>>> 引数なしで使用した場合、TRUE を返すだけになっています。
>>>> mb_check_encoding() を引数なしで使用するという状況が思い浮ばない
>>>> のですが、これは意図通りの仕様なのでしょうか?
>>>>
>>> これは……どうなんでしょうね。私にはちょっと判断できません。
>>> php-dev @ php.gr.jp に振ったほうがいいかも知れませんね。
>> これは不正なエンコーディング攻撃の検知に関する関数で,
>> mb_check_encoding()を引数なしで起動すると,リクエスト開始時から関数実行
>> までに,不正にエンコーディンされた文字が1文字以上あった場合にfalse,
>> それ以外の場合に,trueを返します。
>> これは,入力の自動エンコーディング変換やmb_convert_variables()を使用する
>> 場合を想定しています。
> 
> ご回答ありがとうございました。
> そのように実装されていることを確認しました。
> ぜひとも、マニュアルに記述しておいていただきたい情報ですね。
> 
> 
>> ただし,エンコーディングの自動検出等で失敗したケースなどを想定すると,
>> 攻撃の誤検出が予想され,テストも不十分なままとなっていました。
>>
>> きちんとテストケースとか書かないとだめですね。。。
> 
> もし、必要でしたら何かお手伝いさせていただきます。
> 

ありがとございます。

具体的なテスト仕様の策定作業にまだかかっていないのですが,例えば,
POST/GET/COOKIEに経由で不正にエンコーディングされた文字を挿入した入力を
行い,
1.mb_get_info('illegalchars')で文字数を検出できるか
2.mb_check_encoding()でtrue/falseを正しく検出できるか
3.複数のリクエストを繰り返した時に上記の動作がリセットされるか
を確認して頂けるとありがたいです。



PHP-doc メーリングリストの案内