タグ

2007年4月9日のブックマーク (5件)

  • PHPの「守護神」Suhosin

    PHPは,数え切れないほどのWebサイトで使われている非常に有名なプログラミング言語である。基的にはスクリプト言語であり,実行時にコンパイルされる。PHPは非常に多くのコミュニティによって支えられており,様々な機能を提供する膨大な数のオープン・ソース・ライブラリが公開されている。「WordPress」といった人気アプリケーションも,PHPで記述されている。ただし,PHPにもセキュリティの問題は存在する。 PHPセキュリティ問題は,長年にわたって多くの開発者が問題の修正に取り組んできた。しかし,常に迅速な対応が行われてきたわけではなく,被害を受けるユーザーも存在した。2006年末には,PHP開発者のStefan Esser氏が,この状況に嫌気がさして,PHP Security Response Teamを辞任した。 Esser氏は自身のブログで,「(辞任した理由は)いくつかあるが,最も決

    PHPの「守護神」Suhosin
  • 「PHPバグ月間」への対処法,危険な関数を無効にしよう:ITpro

    PHPセキュリティ・レスポンス・チームを離脱したPHP開発者のStefan Esser氏が,3月にPHPのバグを公表し続けた活動「Month of PHP Bugs(PHPバグ月間)」をご存じだろう(関連記事:「3月は「PHPバグ月間」,元開発者がバグを毎日公開へ」,「PHPのぜい弱性を毎日公表するプロジェクト,ユーザ会のメンバーが日語訳公開」)。Stefan Esser氏が公開したバグのいくつかは,危険な関数を無効にすることで回避可能である。 もし読者が自身のサーバーでPHPを使っている場合,エンジンの意図しない部分まで公開されていないか,その構成をチェックする必要がある。もしぜい弱な部分が公開されている場合は,そこからシステム全体,ひいては使っているネットワークの他の部分まで公開されてしまう可能性があるからだ。 使っているWebシステムが閉じている(つまり,他のユーザーによるファイル

    「PHPバグ月間」への対処法,危険な関数を無効にしよう:ITpro
  • PHP4 と PHP5 で __get(), __set(), __call() を共存する方法 - hatotech::kumatch

    PHP4 と PHP5 で __get(), __set(), __call() を共存する方法 PHP5 では クラスの __get()、__set() および __call() をネイティブにサポートしています。 一方 PHP4 でも 4.3 以降 overload() を実行することで、クラスのオーバーロードを行うことが可能で、__get()、__set() および __call() を使用することができます。 しかしそれぞれのメソッドのインターフェース仕様が異なっているため、これらを普通に使用した対象クラスは PHP4 用もしくは PHP5 用という限定した存在になってしまいます。 しかし以下のようにすることで、PHP4, PHP5 の共存が可能になります。 例として Foo クラスにて __call() を実装してみます。 Foo.php <?php class Foo {

    studio-m
    studio-m 2007/04/09
  • fakelog : Zend FrameworkにActiveRecord相当のクラスがない理由 - livedoor Blog(ブログ)

    今更な話かもしれないけども。 一応、Zend_Db_TableとZend_Db_Table_RowというrailsのActiveRecordっぽいクラスはあるものの、 レコード自体のオブジェクト拡張ができる作りではないのでイマイチ使いづらい。 初期の発表の時点ではZActiveRecordっていうのがあったと思うんだけどいつの間にか無くなってた。 んでまあrailsのActiveRecord便利だしphpでも自前で実装してみよう、ってなった時に誰もが直面する問題。 まず、railsの方のActiveRecordのfindというクラスメソッド(スタティックメソッド)。 class Entry というクラスを作ったら Entry.find() で条件に合致するEntryのレコードオブジェクトが取得できる。 で、php5でこのfindを(スタティックメソッドで)

    studio-m
    studio-m 2007/04/09
    継承したstaticメソッドで__CLASS__とか取ると、親クラスしか取れない件について。本当どうにかしてくれ。
  • データベース接続(PEAR::DB) - PEAR入門

    ここではPEAR::DBの使い方について確認していきます。PEAR::DBはPDOなどと同様にデータベースに依存しない形でプログラムの記述が出来ますのでデータベースの変更があった場合でも最小限の変更で済ますことができます。 DBパッケージがインストールが行われていない場合は下記のいずれかの方法にてインストールを先に行っておいて下さい。 pear install DB pear install -a DB pear install -o DB

    studio-m
    studio-m 2007/04/09