[PHP-users 9653] Re: ファイルの存在確認をしたい

@ Edwin php-users@php.gr.jp
Sat, 31 Aug 2002 13:33:31 +0000


よく分かりました。

これからも「より安全でエラーに強いWebサイト」の構築に努めたいと思います。:)

- E


Yasuo Ohgakiさんwrote:
>
>大垣です。
>
>蛇足なので説明不足でも良いか、と思っていたのですが、せっかくな
>ので追加します。
>
>@ Edwin wrote:
> >
> > Yasuo Ohgakiさんwrote:
> >
> >> # 蛇足ですが、もしWriting Solid PHP Codeという本
> >> # あればE_ALLでコーディングしましょう、と書いてあると
> >> # 思います。E_ALLでエラーが発生しないように開発する
> >> # 事は安全なWebアプリケーションを作る上で非常に重要です。
> >
> >
> > 確かに、努力は必要です。が、今、現在、(今まで)人間が作った完璧なものっ

> > てあ
> > りますか?「エラーが発生しないように」開発しても、いつか、どこかで、エ
> > ラーが
> > 出てくると思います。また、(1)「バグ」というものがあるのではないでしょ
う
> > か?(2)自分がどんな努力をしても、サーバーや回線や他のソフト(アプリ
ケー
> > ション)の問題があったら、エラーが発生します。(例:自分で作ったPHPアプ
リ
> > ケーションが他のFTPサーバーやDBサーバーやWeb Applicationサーバーに接続し

> > てい
> > る間に急に問題が発生したら、エラーが発生するのではないでしょうか?)
>
>エラーにもいろいろ種類がありますが、ほかのサブシステムがクラッシュ
>したり、ユーザーが予期しないデータを送信したりする事はよくある事で
>す。
>
>より安全でエラーに強いWebサイトを作る為には
>
>1. E_ALLでエラーフリーなスクリプトを書く
>2. user_error_handlerを定義しどのようなエラー発生時にも
>    適切なエラーページ表示する
>3. エラーカウンタを設けておいて、閾値以上のエラーが発生したら
>    常にエラーページを表示する
>
>ように作る事が望ましいと考えています。
>エラーは開発者が意図しない使い方やテスト洩れの部分で発生します。
>サブシステムがおかしくてエラーになったか、クラッカーからの攻撃で
>エラーになったか記録しておく事が大切です。また、余計な情報はクラッ
>カーに与える必要はないのでエラーが発生した場合はエラーで正常に
>表示できなかったページを表示するのではなく、用意されたエラーページ
>を表示する事が重要と考えています。
>
>Writing Solid Code(Microsoft Press)は8か9年程前に読んだ
>本ですが、私のお気に入りの本の一つです。比較的ボリュームも少ないの
>ですぐに読みきれます。Cプログラマにはお勧めです。
>
> >
> > PHPの開発者たちはなぜ「@」エラー制御オペレータを使えるようにPHPを開発し

> > たのですか?また、php.iniの中にこういう「注意書き」もあります:
>
>いつからあったのか知りませんが、不適切に書かれたコードを利用
>しなければならない場合には便利です。:) しかし、利用はお勧め
>しません。 好ましくない機能/仕様のうちの一つと思います。
>
> >
> > <snip>
> > ; Print out errors (as a part of the output).  For production web 
sites,
> > ; you're strongly encouraged to turn this feature off, and use error
> > logging
> > ; instead (see below).  Keeping display_errors enabled on a production
> > web site
> > ; may reveal security information to end users, such as file paths on
> > your Web
> > ; server, your database schema or other information.
> > display_errors = Off
> > </snip>
> >
> > なぜ「エラーを表示しないようにOFFにしてください」という提案が書いてある
ので
> > すか?考えられる理由ってたくさんありますが、ひとつだけ言いたいと思いま
す。
> > 「完璧なもの」って*私*は作りませんから。
> >
> > PHPの開発者たちがエラーを表示しない方法を与えてくれたことはありがたいこ
とで
> > す。
>
>皆さん、運用しているサーバーでエラーを表示しない方が良い事はご存知
>ですよね?エラー情報はアタックを行なう際、例えばSQLインジェクショ
>ンなどを行なう時に非常に役に立ちます。
>
>運用時には
>error_reporting=E_ALL
>display_errors=Off (エラーハンドラがあるとエラーメッセージは表示しませ
>んが...
>log_errors=On
>output_buffer=On (or zlib_output_compressoin=On)
>カスタムエラーハンドラでエラー発生時に用意されたエラーページを表示
>
>開発時には
>error_reporting=E_ALL
>display_errors=On
>log_errors=On
>エラーハンドラ無し
>
>で開発すると良いと思います。
>
># エラー発生後に任意のエラーページを表示するにはアウトプットバッ
># ファー必要ですが4.2.xより古いPHPでob_end_*()/
># ob_implicit_flush()でアウトプットバッファーを終了させる
># と予期しない動作をする事があります。古いPHPを使っている場合は
># 注意が必要です。説明すると長くなるので気になる方は4.2.2を使っ
># てください。
># アウトプットバッファーのコードを改良していたのはこのバグを直す
># 為だったのです。このバグには結構苦しめられました... :(
>
>--
>Yasuo Ohgaki
>
>
>_______________________________________________
>PHP-users mailing list
>PHP-users@php.gr.jp
>http://ns1.php.gr.jp/mailman/listinfo/php-users




_________________________________________________________________
かわいくて愉快なイラスト満載 MSN キャラクター http://character.msn.co.jp/