[PHP-users 9642] Re: ファイルの存在確認をしたい
Naofumi Kondoh
php-users@php.gr.jp
Fri, 30 Aug 2002 11:54:47 +0900
ソフト工房の近藤です。
@ Edwin wrote:
>
> Yasuo Ohgakiさんwrote:
>
>> # 蛇足ですが、もしWriting Solid PHP Codeという本
>> # あればE_ALLでコーディングしましょう、と書いてあると
>> # 思います。E_ALLでエラーが発生しないように開発する
>> # 事は安全なWebアプリケーションを作る上で非常に重要です。
> 確かに、努力は必要です。が、今、現在、(今まで)人間が作った完璧なものっ
> てあ
> りますか?「エラーが発生しないように」開発しても、いつか、どこかで、エ
> ラーが
> 出てくると思います。また、(1)「バグ」というものがあるのではないでしょう
> か?(2)自分がどんな努力をしても、サーバーや回線や他のソフト(アプリケー
> ション)の問題があったら、エラーが発生します。(例:自分で作ったPHPアプリ
> ケーションが他のFTPサーバーやDBサーバーやWeb Applicationサーバーに接続し
> てい
> る間に急に問題が発生したら、エラーが発生するのではないでしょうか?)
一般論としてはいいですが、それをもって、@ を使用したり、
E_ALL を設定しない理由にするのは、論理のすりかえです。
ソフトにバグのない証明はできないが、バグのないソフトを
作るための努力は必要です。
その努力のためには、@ の使用は、代替え手段のあるやむお
えない場合に限定し、error_reporting は、E_ALL に設定す
べきです。
# 私だってバグをだしますが、出さないように努力をするし、
# バグの発見がしやすいような設定をします。
# 尤も、過去の資産については、変更費用や、作業の優先順
# その他の理由で、なかなかバグやセキュリティー対策がすす
# まないので、大きなことは言えませんが。
> PHPの開発者たちはなぜ「@」エラー制御オペレータを使えるようにPHPを開発し
> たの
> ですか?
....略....
参考に、@ が必要な場合の1つの例をあげます。
pg_query などで SQL 文を実行した場合、DB の生の警告・
エラー表示が直接画面に出ます。これは、ユーザーにとって
わかりにくだけでなく、ユーザーには見せないほうがよい情報
まで表示され、クラッカーの攻撃材料にされる可能性もあります。
こういう場合は、@ で、DBの生の表示を出さずに、ロジックで
判定したわかりやすい警告・エラー表示をするようにします。
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
(株)ソフト工房 近藤直文 Email: nkon@shonan.ne.jp
http://www.SOFTKOUBOU.co.jp/ http://www.shonan.ne.jp/~nkon/
2002-09-26(木)19:00-21:30 第6回 JPUG 業務アプリ分科会 勉強会
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/