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

Youichi Iwakiri php-users@php.gr.jp
Fri, 30 Aug 2002 10:16:11 +0900


いわきりです

@ Edwin wrote in <F187siPUarJLFJtpKye0000b6a9@hotmail.com> :
>># 蛇足ですが、もしWriting Solid PHP Codeという本
>># あればE_ALLでコーディングしましょう、と書いてあると
>># 思います。E_ALLでエラーが発生しないように開発する
>># 事は安全なWebアプリケーションを作る上で非常に重要です。
>確かに、努力は必要です。が、今、現在、(今まで)人間が作った完璧なものってあ
>りますか?「エラーが発生しないように」開発しても、いつか、どこかで、エラーが
>出てくると思います。また、(1)「バグ」というものがあるのではないでしょう
>か?(2)自分がどんな努力をしても、サーバーや回線や他のソフト(アプリケー
>ション)の問題があったら、エラーが発生します。(例:自分で作ったPHPアプリ
>ケーションが他のFTPサーバーやDBサーバーやWeb Applicationサーバーに接続してい
>る間に急に問題が発生したら、エラーが発生するのではないでしょうか?)

ですから、心掛けの問題でしょう?
大垣さんの言われていることは。

>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にしてください」という提案が書いてあるので
>すか?考えられる理由ってたくさんありますが、ひとつだけ言いたいと思います。
>「完璧なもの」って*私*は作りませんから。

書いて在るとおりだと思いますが、仮にデータベースが泊まっている場合など
スクリプトが実行できません。その際に、DBアクセスエラーが表示されると
PHPを使っているサイトだとすぐ判りますよね。PHPに既知で無いバグが内在していて
セキュリティ上問題があるとすれば、WEBサーバがどのようなアプリケーションで
構成されているかを、外部に知らせないことがクラッキング対策の一つとして
有効だからです。

>PHPの開発者たちがエラーを表示しない方法を与えてくれたことはありがたいことで
>す。
>結局は使い方次第ですね・・・ :)

ご自身でお気づきのバグを放っておく為に、使う物では無いですけど。
#そういう使い方もありですかねぇ

-- 
Youichi Iwakiri