パスワードを忘れた? アカウント作成
14787 story
PHP

the Month of PHP Bugs 始まる 24

ストーリー by yourCat
今月はP 部門より

すっかりシリーズ化した感のある the Month of hogehoge Bugs だが、今月は『the Month of PHP Bugs』が行われている。1日1脆弱性というスタイルはとらないそうで、この文章執筆時点で既に5つが公開されている。yohgaki's blog日本語訳を公開している。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • 最近のhttpd (スコア:2, 興味深い)

    by a-yasui (30289) <a.yasui@gmail.com> on 2007年03月03日 3時16分 (#1119901) ホームページ 日記
    最近、httpdが時たまコア玉吐くのはこれのお陰かしらん。

    # 実害ない?から別にいいんだけど、直せる物は直してほしいなぁ・・・
    # そうでなくても、make test で引っかかるバグは結構あったし。
  • 4.4.6 (スコア:2, 興味深い)

    by Elbereth (17793) on 2007年03月03日 9時53分 (#1119952)
    ついこの前の2/14ですか、PHPの4.4.5が出たと思ったら、
    それも割と致命的なバグがあるとかで4.4.6のRC1が出て……って
    確認したら、3/1に4.4.6が出ているのか。

    4.4.4のままで様子見ていたけど、週明けにまた
    更新作業やらないといかんなぁ。
    • Re:4.4.6 (スコア:4, 参考になる)

      by Anonymous Coward on 2007年03月03日 17時04分 (#1120156)
      4.4.5(以降)って、このセキュリティホールは修正されているんですかね?
      http://secunia.com/advisories/22653/

      4.4.5、4.4.6、どちらのChangeLogにも、"htmlentities"や"HTML entity resources"に対する
      修正を意味しているものが見受けられないんですけど…。

      問題が見つかったときに、本家のCVSにパッチしたものあげたし、みんな知ってるから、もういいよね、それで終了ということなのかな?

      どちらにしろ、そもそも、実際の影響はどうあれ、RHELでも「重要」扱いされ、直ぐに修正版が出た問題に対し、本家の方は正式リリースは放置。自分でCVSからコードを取って、パッチをあてないといけないという時点で腐っている気はします。

      まぁ、5系に移行させるという意図から、4系を冷遇しているのかもしれませんが、
      5系も5系で5.0の黒歴史っぷりなどを見るに、行くも地獄。残るも地獄って感じですね。
      親コメント
  • by Anonymous Coward on 2007年03月04日 5時45分 (#1120379)
    まだこうやって脆弱性が広く公開されてる分には良いです。しかし、公開されていない物も多いのではと思います。

    PHPの場合、エンコーディングがらみの問題だけでもいくつも問題が明らかになっていますが他の言語の場合は聞いてません。問題など最初からなく完璧なコードだったのか?(あまり考えられない..)、ライブラリのバグなので小さくしか取り扱われて無くて気がつかないとか? 普通のプログラミング言語の場合、エンコーディング変換関数などに問題があっても、ライブラリの問題なので、言語の問題として取り扱われないですよね。

    PHPは言語というより簡易フレームワークのようになっていて、普通の言語だと「GDライブラリのコードが腐っていて脆弱性でした」という脆弱性は言語の脆弱性として扱われませんが、PHPだと「セキュリティホールだ」と大々的に公開されますよね。PHPプロジェクトとしてセキュリティ意識の改革は必要ですが、セキュリティ上のまとめてセキュリティ情報が取得できるPHPは一般ユーザの方が使いやすいと言えるかも知れません。

    CPANとかRAAとか、納品先のユーザがアップデートしてる?問題があることに気が付ける?PEARはセキュリティ情報を公開していないので最悪ですけど。

  • by Anonymous Coward on 2007年03月03日 5時59分 (#1119903)
    うぎゃー、年度末に入れ替え大会が発生するような催し物はやめてくれー。
    ただでさえ検証→アップデート面倒なのに。
  • by Anonymous Coward on 2007年03月03日 1時33分 (#1119883)
    the Bugs of the day
    とかやらないんですかね。
  • by Anonymous Coward on 2007年03月03日 2時18分 (#1119890)
    PHPなんてこの世から消えて欲しい。

    変数の前の$とか馬鹿みたいだし。
    $a = 1;
    $b = "2a";
    $c = $a + $b;
    とかどうなるの?
    • Re:PHPは糞 (スコア:5, 興味深い)

      by annoymouse coward (11178) on 2007年03月03日 3時24分 (#1119902) 日記
      php では 1+"2a"3 になります.
      大抵のプログラマはこの結果に違和感を感じるはずです.

      言葉は悪いですがAC氏の指摘どおり,現状のphpはあまりおすすめ出来ません.
      言語仕様や実装の詳細を知れば知るほど,phpは怖くて使えなくなります.

      また,yohgaki氏のブログに書かれているように
      「PHP開発者はこの問題を修正しようと思っていません。数えきれないほどの議論がありましたがPHP開発者はどの解決策も受け入れようとしませんでした。」という話も多いです.

      php にはあまり将来性が感じられません.
      親コメント
      • Re:PHPは糞 (スコア:3, おもしろおかしい)

        by Anonymous Coward on 2007年03月03日 18時32分 (#1120190)
        まったくもって同意。

        PHPは次のような特徴がある。

        • 行き当たりばったり(各種モジュールの関数名を見るといい)
        • 形ばかり真似て中身を真似ない(interfaceやらtry-catchやら、変数名の$やら)
        • 一見便利そうだがバグの温床(register_globalsやらmagic_quotesやら)


        まるで現代の若者のようではないか!
        なるほど、現代の若者に人気がある理由に納得がいくというものだ。
        親コメント
      • by uxi (5376) on 2007年03月03日 16時11分 (#1120138)
        何が嫌なのか良く分からない、、、
        型の制約が緩いのが嫌って事???
        PHP みたいなスクリプト系の言語では、別に珍しい事ではないと思うのだけど?

        文字列として扱ってほしいなら、
        $a = 1;
        $b = "2a";
        echo $a.$b;
        として結果 "12a" を得る方法はあるわけで、、、

        気持ち悪さで言えば、断然
        $a=""; の時の、
        switch($a){
        case 0 : echo "zero"; break;
        case "": echo "empty"; break;
        }
        とか
        switch("$a"){
        case 0 : echo "zero"; break;
        case "": echo "empty"; break;
        }
        を挙げるべきじゃないだろうか?
        目的の結果を得るには
        switch("$a"){
        case "0": echo "zero"; break;
        case "": echo "empty"; break;
        }
        としなくちゃならないんだよね、、、

        とりあえず、スクリプト系の言語は数あるけど、
        比較的 C 言語に近い文法と概念でまとめてあるって意味では、
        そう捨てたもんじゃないと思うし、
        他の言語よりも利便性は高いくらいじゃないかと思うんだけどなぁ、、、

        不満がない言語なんて存在しない思うし、
        便利な言語も多数あるわけだけど、
        /.jp まで出てきてそこまで明確に駄目出しするんなら、
        折角なので、代替案示して欲しい気が、、、
        --
        uxi
        親コメント
      • by Anonymous Coward
        この、1+"2a"の例って、スクリプト嫌いの方が出す典型的な例ですね。

        これは、xUnit系の導入は当然として、
        モックオブジェクトでのテスト等もやっていれば
        さして問題になるようなことではないでしょう。
        フレームワークやツール類で補助すればいいのです。
    • Re:PHPは糞 (スコア:2, 参考になる)

      by Anonymous Coward on 2007年03月03日 11時27分 (#1120012)
      Perlの悪口はそこまでだっ!

      $ perl -le '$a=1; $b="2a"; $c=$a+$b; print $c'
      3
      親コメント
    • Re:PHPは糞 (スコア:1, 興味深い)

      by Anonymous Coward on 2007年03月03日 2時40分 (#1119893)
      D:\usr\local\php-5.2.0>php.exe
      <?php
      $a=1;
      $b="2a";
      $c=$a+$b;
      print $c;
      ?>
      ^Z
      3
      D:\usr\local\php-5.2.0>
      親コメント
    • by Anonymous Coward
      問1:PHP(5は大丈夫なのか?)で、以下はどう解釈されるか答えよ。
      print
          1===0? '0':
          1===1? '1':
          1===2? '2':
              Null;

      答:
      print
          ( ( (1===0? '0': 1===1)?
              '1': 1===2)?
          '2': Null); <- 最終的にみるのはここだけ。

      正直コレはないと思った。
      • Re:PHPは糞 (スコア:1, おもしろおかしい)

        by Anonymous Coward on 2007年03月03日 22時24分 (#1120270)
        そりゃないよなぁとは思いますが、「これはPerlなくてPHPだよ。マニュアル読んでswitch()使おうな」と答えておきます。

        PHP5でも同様ですが、バージョンで演算子の優先順位を変えるような間抜けではなかっただけですな。

        結局、PHPそのものではなくて、アレなPHPプログラマが多いってことですか。

        -- A.C., nothing more, nothing less.
        親コメント
  • by Anonymous Coward on 2007年03月03日 10時22分 (#1119969)
    ボロボロ出てきそうだからMonth of Oracle Bugsなんかもキボン
    • Re:オフトピ (スコア:1, 興味深い)

      by Anonymous Coward on 2007年03月04日 1時07分 (#1120319)
      Oracleはサポート契約しないとバグの修正パッチも落とせないからバグ見つけられてもどうもならん
      親コメント
typodupeerror

あつくて寝られない時はhackしろ! 386BSD(98)はそうやってつくられましたよ? -- あるハッカー

読み込み中...