PROVE for PHP 1.0.3を公開
私の会社で開発・販売しているPROVE for PHPを更新し、PDOオブジェクトに対応したPROVE for PHP 1.0.3の配布を開始しました。PDOオブジェクトに対応したので幅広いアプリケーションで利用できます。PROVEは非商用の個人利用の場合、無償で利用できます。問題などございましたらツイッターやメールなどでフィードバックを頂けると助かります。…
PHP 5.4から利用できるtraitの利用例
PHP5.4からtraitが利用できるようになる事をご存知の方も多いと思います。 traitはコードの水平再利用を可能にする仕様拡張です。Rubyのmixinのような機能と言えば分り易いかも知れません。 誰でもtraitを利用したくなるようなコードをinternals@php.netのMLで見かけたので紹介しよう、と思って書いたのですがコピペしたコードをしっ…
Bit module for PHP
誕生日のメッセージを送ってくださった皆様ありがとうございました! 今日は誕生日ということで多少は趣味のOSSに時間を割いてもバチは当たらないだろう、という事で簡単なPHPモジュールを書きました。PHP勉強会@東京に参加してPHPerバイナリアンの方の発表に触発された事がこのモジュールを書いた動機です。BitモジュールはバイナリアンPHPerの為のモジュールで…
RealIP Module for PHP
リバースプロキシの背後にあるPHP用に$_SERVER['REMOTE_ADDR']をX-Real-IPやX-Forwarded-Forヘッダに設定されたIPアドレスに書き換えるRealIPを書きました。 https://github.com/yohgaki/realip 少しGoogleで検索しても見つからなかったので作ったのですが、既にありそうな気がしま…
PHPセッションアダプションをスクリプト側で修正する方法
PHPのスクリプトを使ってアダプティブなPHPセッションをアダプティブにしない方法を紹介します。 このブログで紹介していたかどうか覚えていないですが、セッションアダプション対策としてsession_regenerate_id()が導入された時に議論・紹介されているので知っている方も多いと思います。(というより、PHPerの常識ですよね?) まずはセッションア…
PHP 5.4の文字エンコーディング設定
PHP 5.4 RC1が公開されています。PHP 5.4のリリースが近いです。PHP 5.3の--enable-zend-multibyeの問題でバグレポートをした関係でinternals MLでメールのやり取りをして分った事とその他をまとめておきます。主にSJISを使う場合の注意点です。間違い・勘違いもあるかも知れないので気が付いたらコメントを下さい。 P…
DOMベースXSSの検出ツール
久しぶりにブログを更新すると色々書きたくなるものですね。ということでまだこのブログでは紹介したことがないDOMベースXSSのオープンソースツール、DOMinatorを紹介します。最近の商用ツールも類似の機能をサポートしています。 http://code.google.com/p/dominator/ DOMベースXSS: JavascriptはDOMを利用し…
PHPのSession Adoption脆弱性
PHPのセッションモジュールはセッションアダプションに脆弱なのですが、開発者の理解が得られず何年間も放置されています。 セッションアダプション脆弱性: 未初期化のセッションIDを受け入れてセッションを確立する脆弱性。 PHPのセッションIDはデフォルトでドメイン指定無し、パスは/に設定されています。専用サイトならこれであまり困ることは無いのですが、複数のアプ…
PROVE for PHP Ver 1.0
まだまだ完成度を高める必要がありますが、PHPのリグレッションテストツールのPROVE for PHPのダウンロードを開始しました。 http://www.provephp.com/ PHPのテストスイートの設定を忘れていてPDOオブジェクトのサポートできてない事に直前に気がついたのでPDOには対応していません。これは出来るだけ早急に対応します。 Dokuw…
PROVE for PHP 0.4.0-dev リリース
PROVE for PHP 0.4.0をリリースしました。 IOをプラグイン化(将来PostgreSQLなどに対応) prove_seek_function_call()を追加 ハードリンクによるコピーに対応(高速化) prove_rename_function()の無効化(PHP 5.3のZend Engineの仕様変更により関数名変更はメモリエラーが発生…