[PHP-users 29886] Re: 文字列長オーバーフロー上限のチェックは必要あるか?

Yoshiro Kiyono kiyono @ mediatie.com
2006年 7月 26日 (水) 11:30:15 JST


清野と申します。

> 元の方の質問は
> 「配列や文字列が実質持てるデータサイズ」についてですよね
> 
> 堂前さんの回答がそれについてだとするならば、
> 私としては
>  そんなのはPHP自体が管理する事であって
>  スクリプトレベルでそんなこといちいち
>  チェックするようなコーディングするのだろうか?
>  もちろん入力データ長のチェックや
>  DBテーブルに挿入するデータ長チェックはするでしょうが
>  内部で加工する際のデータ長をチェックする必要があるのだろうか?
> という疑問をもちました。
> 
> みなさんそんなことされているんですか、
> 私自身大きな勘違い、見落としをしているのでしょうか?

あっていると思います。
自分でallocしたり、ソースコード上で定義したバッファに
オーバーフローするほどのデータが入らないように注意するのは
そのバッファをダイレクトに扱う人に責任であるはずです。

PHPの可変長文字列がオーバーフローするかどうかの責任は、
可変長文字列のためのバッファをダイレクトに扱うPHP言語の責任です。

少なくとも私は、PHPに用意されている可変長変数を使用する限りは、
そんなものをチェックすべきだとは思いません。

 ただし、可変長の限度がちゃんと定義されていて、そのとき扱っている
 スクリプトが、仕様上正常系の処理として、その限度に抵触するのであれば
 話は別です。

-- 
清野 <kiyono @ mediatie.com>

>  Setoです。ちょっと心配になってきたので便乗質問です。
> 
> 元の方の質問は
> 「配列や文字列が実質持てるデータサイズ」についてですよね
> 
> 堂前さんの回答がそれについてだとするならば、
> 私としては
>  そんなのはPHP自体が管理する事であって
>  スクリプトレベルでそんなこといちいち
>  チェックするようなコーディングするのだろうか?
>  もちろん入力データ長のチェックや
>  DBテーブルに挿入するデータ長チェックはするでしょうが
>  内部で加工する際のデータ長をチェックする必要があるのだろうか?
> という疑問をもちました。
> 
> みなさんそんなことされているんですか、
> 私自身大きな勘違い、見落としをしているのでしょうか?
> 
> 
> >堂前です
> >
> >> オーバーフローを起こしそうであれば、エラーにしたりすべ
> >> きなのでしょうか?ここだけ見ると、当然のようなのですが、それをやると、PHPの
> >> 生産性が奪われそうですし、遅くなりそうですし・・・
> >
> >自分は経験がないのすが、アタックされた結果システムダウンして
> >トラブったという経験を積めば、考えが変わるかと思います
> >#大きなお世話ですが、いろんなNews等でクラックされたと
> >#いう記事見て、何とも思わないのかな?
> >
> Junya Seto




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