X

PHP

register_globals=onが必要なアプリ対策

register_globals=onで運用しなければならないアプリケーションはまだ結構あるようです。古いPHPには http://blog.ohgaki.net/index.php/yohgaki/2005/11/09/phpa_rc_fei_a_oa_oa_fa_sa_le_acsa_oe_afp_2 の$GLOBALS改ざん問題がありますが、アプリの動…

PHP 5.0.5の参照エラーを回避するパッチ

PHP 5.0.5の場合、不必要なFatalエラーが多発します。 Fatal error: Only variables can be passed by reference in /home/yohgaki/public_html/pukiwiki-1.4.5_1.orig/rules.ini.php on line 26 私も最初は本気でこのような仕様に…

PHPに重大な脆弱性(PHP4.4.0以下、PHP5.0.5以下) – まとめ

追記 2007/11/06: 現在のリリース版(4.4.7, 5.2.4)ではこの脆弱性は修正されていす。これより以前のPHPでも修正されていますが、別の脆弱性があるので最新リリース版の使用をお奨めします。 追記:PHP 5.1.1、PHP 5.1.2にはPHP 5.1.0で追加された対策がなぜか削除されています。PHP5でosCommerce等、regis…

PHPの現行リリースに重大な脆弱性(PHP4.4.0以下、PHP5.0.5以下) – その2

追記:まとめ用のエントリも追加しました下記URLもご覧ください。 http://blog.ohgaki.net/index.php/yohgaki/2005/11/09/phpa_rc_fei_a_oa_oa_fa_sa_le_acsa_oe_afp_2 まず先のブログエントリで私が誤解していたため解りづらい状態になっていました。register_globa…

PHPで記述されたnanoftpd

PHPで記述されたWebサーバ、nanowebが公開されたのは随分前で確かsoket関数に地雷が沢山埋まっている頃だったと思います。地雷にもめげずよく作ったものだ、と関心した事を覚えています。 PHPで記述されたFTPサーバ(nanoftpd)公開されていたんですね。PHPは使えるけどFTPは使えないサーバに便利かも知れないですね。

PHPのlintモード

エラーハンドラでE_ERRORを処理できるようにして関数名などのタイポに対応できても、タイポによる構文エラーに対処できなければ意味が無いよね?と言う事でlintモードの紹介です。 随分前のPHPからlint(構文をチェックするモード)はあったのですがあまり使われていない(?)ような気がします。実際、かなり長い間壊れていた事もあります。最近のPHPのlintモ…

ユーザ定義エラーハンドラの拡張パッチ

最近のPHPはE_ERROR(未定義の関数呼び出しなどで発生)をユーザ定義エラーハンドラで処理できません。これはE_ERRORが発生した場合、必ずeixtを呼び出しスクリプトの実行を停止しないと誤作動する問題に対処した為です。 随分前(PHP 4.3がリリースされた頃)からこんな感じでパッチを書けばよいです、と紹介はしていたのですがWikiに書きました。よろ…

php内部でのmmapの使い方

遅ればせながらPHP 5.0.5使っていて直しているだろう、と思い込んでいたバグが直っていない事に気が付きました。 PHP内部のphp_stream_passthru()関数はreadfile()やfpassthru()関数に利用されているのですがmmapの使い方がいい加減です。PHP 4.3.xのバグレポートでreadfile()で大きなファイルが読めない…

また作りを知らない人が…

「PHP Open_BaseDir Security Restriction Bypass Vulnerability」と言うbug truckのエントリを作っている人がいますね.... 何年も前から何度もソフトウェアのデザイン上の間違いではない事は解説されているのですけどね.... 最近のPHPマニュアルには「open_basedir」も「safe_mod…

改訂版PHPポケットリファレンス

昨日、見本が届きました。 デザインが新しくなったようです。ポケットリファレンスシリーズは引数を◆■◇□等の記号で表記していましたが新しいポケリ(POKERI)シリーズは引数を名称で書くようになりました。改訂前より随分見やすくなったと思います。amazon.co.jpにあるかなと思い検索すると予約可能となっていました。画像が無かったので自分で撮った写真がこれで…

gooの辞書検索がPHPに

少し前の事になりますがgoo.ne.jpの辞書サービスがCGIバイナリ(?)からPHPに変更されました。 具体的にはURLが http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi から http://dictionary.goo.ne.jp/search.php に変更されました。たいした事ではないですが気が…

PHP 5.0.5リリース

PHP 5.0.5がリリースされました。XMLRPCのセキュリティフィックスが含まれています。 他のディストリビューションも同じとは思いますが、Momonga LinuxのXMLRPCは現行リリース(5.0.4-6m)でもセキュリティ対策済みです。

岡山県工業技術センターでPHPセミナー

岡山県工業技術センターでPHPの入門セミナー講師をさせていただきました。会議室に満員の70名ほどの方に聞いていただきました。 入門といっても前半がPHPの紹介、後半がセキュリティ対策の基礎、という入門用のセミナとしては内容がPHPに特化していたと思います。PHPを使っていない方も多かったので私の本と同じで評価は大きく分かれるセミナーになったと思います。 しか…

PHPのE_STRICTエラー

PHPのエラーレポートレベルはphp.ini設定のerror_reportingで設定されています。 PHP5から追加されたE_STRICTで「あれ」と思われるかもしれない状況があるので書いておきます。

PHPのメモリ・リソースリークの修正

気が付いていてもやってないことが多いので、せめて近日中に処理しようと思っていることくらいは公開して自分にプレッシャーをかけてみる事にしました。 PHPにはError HandlerやException Hanlderを使った場合、メモリやリソースが開放されない場合があります。多少のリークは問題とならない場合がほとんどですが中にはサーバがフリーズしてしまうケー…