カテゴリー: Development

  • PHP 5.1.3リリース

    体調を崩している間にPHP 5.1.3がリリースされRC2以降に紛れ込んだ$_POST要素が配列である場合のバグ、FCGIのバグ等の為、PHP 5.1.4が直ぐにリリースされていますが、PHP 5.1.2から直った脆弱性は次の通りです。一部フライングで公開されていた物もあります。
    # CVSのコミットログなどをチェックしている人にはもっと前から公開
    # されている、ともいえますが。

    The security issues resolved include the following:

    * Disallow certain characters in session names.
    * Fixed a buffer overflow inside the wordwrap() function.
    * Prevent jumps to parent directory via the 2nd parameter of the tempnam() function.
    * Enforce safe_mode for the source parameter of the copy() function.
    * Fixed cross-site scripting inside the phpinfo() function.
    * Fixed offset/length parameter validation inside the substr_compare() function.
    * Fixed a heap corruption inside the session extension.
    * Fixed a bug that would allow variable to survive unset().

    議論の余地はあると思いますが、厳格にセキュリティ関係の修正として含めても良いかも知れない物は次の修正があります。

    * Fixed tiger hash algorithm generating wrong results on big endian platforms.
    * Make is_*() function account of open_basedir restrictions.
    * Fixed a number of crashes in the DOM and PDO extensions.
    * Make memory_limit work in Win32 systems.
    * Fixed a deadlock in the sqlite extension caused by the sqlite_fetch_column_types() function.
    * Fixed memory leaks in the realpath() cache.

  • Zend Framework 0.1.3

    4/18にZend Frameworkのリリースがアップデートされていますね。

    詳しくはリンク先のチェンジログを見ていただくとして

    – Zend_HttpClient moved to Zend_Http_Client (Mike)

    のように互換性に関連する修正や機能追加もありますが、あまり大きな変更や追加はなく基本的にはバグフィックスリリースになっています。

  • オープンセミナー2006@四国

    今日はサンポート高松で13時からPostgreSQL、インターネット、セキュリティ、オープンソースに関するセミナーがあります。

    セミナーの詳細はこちら

    http://www.postgresql.jp/ug/shikoku/conf/20060422/index.html

    懇親会の当日受付もしています。
    ご都合の良い方は是非お越し下さい。

  • Zend Frameworkの参考URL

    とりあえず簡単に検索してみた結果です。リリース情報のページばほとんどで中身のあるページはまだあまり無いですね。お勧めがあったら教えてください。

    英語
    http://framework.zend.com/ (本家)
    http://framework.zend.com/manual/en/ (英語マニュアル)
    http://framework.zend.com/download/subversion (レポジトリへのアクセス)
    http://www.phparch.com/zftut/index.php?p=0  (チュートリアル)

    日本語
    http://tdiary.ishinao.net/?year=2006;month=03;category=Zend+Framework  (使用感など。参考になる)
    http://framework.zend.com/manual/ja/index.html  (日本語マニュアル)

    日本語のチュートリアル的な物は無いのですね。マニュアルとソースを読めば大方使い方は分かりますからね。

    http://tdiary.ishinao.net/ にも書いてありますが、private->protectedの変更は必要ですね。

    http://tdiary.ishinao.net/20060329.html#p03 も参考になります。私はまだ「Zend_Frameworkを使ったことがある」とは言えないのでコメントできませんが、下記の感想はマニュアルとソースを読んだ限りでは同じ印象を持ちました。

    もちろん動くものを作るだけならなんとかなるんだけど、Zend Frameworkベースのアプリケーションとして、ある程度の将来互換性も確保できるように作ろう、とか思うと現時点の完成度ではまだ無理だ*1。

    一応Controller周りは結構完成度が高そうなんで、そこだけならばいけそうではある。かなりフィックスした仕様に見えるし、たとえデフォルトでの挙動が変更されたとしても、現状の拡張性の枠組みの中でカバーできるであろう柔軟性を備えている。プラグインの機構も応用範囲が広そうだ。

    Viewに関しては、現状が最終仕様とはとても思えないんで、おそらくまだまだ互換性のない仕様変更があるだろう。っつーか、現在の Zend_Viewを使うくらいだったら、もっとこなれた他のテンプレートエンジン(Smartyとか)を使った方が、現時点ではずっとましだろう。

    Zend_Logは、ログの保存がstaticメソッドに集約されたという設計はいいんだけど、デフォルトでCompositeじゃないのが使いにくい。自前のComposite Adapterとかを使ってカバーするという手もあるけど、その辺には仕様変更もありそうだし、現時点ではまだPEAR Logを使っておいた方がましかもしれない。

    Zend_Db周りは非常にビミョー。Zend_Db_Adapterはあれで十分なんで、そのままいけるかなーと思いつつも、O/Rマッパー系は現状では実用レベルじゃないよなー。1テーブル単位のselectしかサポートしないO/Rマッパーで完結できるような設計なんて現実的じゃないし、ちょっとでもjoinしたければとたんにO/Rマッパーはつかえなくなっちゃうし。

    拡張性と柔軟性重視なので無くても当たり前なのかもしれませんが、コード生成もしてくれたらうれしいのですけどね。

  • FlashなどをIE仕様変更に対応させる

    それにしても、世界中のユーザーとWeb制作者に多くの苦痛を強いるだけのこの裁判の成り行きには、疑問を感じざるを得ません。

    同感…
    500億くらい、もっとでしたっけ?Eolasの請求額。

    日本でもあった某社のコンテクストヘルプもですが、これも特許?!と思わせる内容です。特許が技術革新に必用な仕組みであることは明らかですが「何これ!?」と思われる発明の権利が認められすぎではないでしょうか?

    特にソフトウェア特許系は最悪で発明に値しないと思われる事例が多数です。結局、

    誰でも思いつく技術を特許データベースで検索

    無かったのでとりあえず特許として出願

    特許になった

    大手が技術を使っている。儲かりそうなので権利を主張してみる

    の様な流れになっていると思います。

    ブラウザに「オブジェクトを埋め込んで自動的に再生をする事」と「イメージファイルを埋め込んで自動的に表示する事」の違いは500億円の価値に値する発明、独占的に使用が出来る発明として認められべき特許なのでしょうか?

    何れにせよ、基本的にはソフトウェア特許は認めるべきではないと思います。
    ソフトウェアは著作権で守られているのですから。

  • PHPを5.1.3RC3相当にバージョンアップ

    最近このサーバのPHPをPHP 5.1.3RC1相当バージョンアップしていたのですが、バージョンアップ前のPHP 5.0.5(+パッチ多数)と比べると明らかにApacheがクラッシュする回数が増えていました。とりあえずPHP5.1.3RC3相当にバージョンアップしました。NEWSファイルを見ると分かりますがRC1->RC3だけでもかなりの変更・修正があります。クラッシュがどの程度直っているかな…

  • inconsistent types deduced for parameter

    久々にPostgreSQLの話です。プリペアードクエリのprepare文のエラーで次のようなエラーに出くわす事があります。

    ERROR: inconsistent types deduced for parameter $8 DETAIL: timestamp without time zone versus text

    パラーメタの番号は振り直している、と思い込んでいたのでこのエラーメッセージを見ても何故だろう状態なり、しばらく悩んでしまいました。ググってみても役に立ちそうなページが一つも無かったので書いておきます。

    create table test (
    t text,
    i int
    );

    のテーブルの場合に

    pg_prepare(‘testplan’, ‘select * from test where t = $1 and i = $1;’);

    等とすると(pg_prepqreはPHP 5.1の関数)

    ERROR: inconsistent types deduced for parameter

    エラーが発生する、はずだったのですがこの例の場合はPostgreSQL 8.0.7で試してみてもエラーが発生しませんでした。自動的にキャストしてしまうのかな?調べてません。

    とにかくこのエラーはプリペアードクエリの同じパラメータが互換性のコラムに利用された場合に発生するエラーです。

    エラーメッセージが読んで字の如しなので有用なページが無いのでしょうね。

  • マイクロソフトの「WPF/E」

    このWPF/Eは2007年前半には登場するはずだが、その目標は次期Windowsクライアントソフトウェア「Vista」の洗練されたルック&フィールのかなりの部分を、別のOSや他社製ブラウザでも再現できるようにするというものだ。

    Flashの代わりにもなるらしい。

  • Webにポップアップは必要か?

    備考:かなり古いブログですが公開し忘れしてい分です。

    銀行サイトにアクセスすると偽のログイン用のポップアップを掲載するトロイの木馬が現れたそうです。機会があるたびに「ポップアップはしない方が良い」「アドレスバーを隠すのは最悪」と言っていましたがIT Proの写真を見ると「Window」としてポップアップするのではなく、「レイヤー」としてポップアップしているようにも見えます。Windowの部分にはアドレスバーが無いので画面全体のWindowsがポップアップとして表示されるのかも知れません。このようなトロイの木馬は予想はしていましたが実際に現れるのは困ったものです。

    以前からログインにポップアップは有害と言っていましたが、海外とは言え実物が出てくるとリスクは以前より大きくなったと言えると思います。例え自分のサイトが価値の高いサービスをしていなくてもWebのデザインとしてポップアップは避けるべきと思います。普通のユーザがポップアップに慣れてしまうと偽のポップアップが開いたときに少しは「あれ?」と思っても偽のポップアップに重要な情報を記入してしまうかも知れません。

    # トロイの木馬がインストールされている時点でほとんどアウトですが。
    # しかし、こんな事をするよりキー入力をログした方が簡単に思えます。
    # キー入力をログするより見つかりづらい、と思ったのでしょうね。多分。

    随分前にも書きましたが、例えば振込みなど資金の移動が伴うような処理の場合、別のセキュアなデバイスで送金情報を表示してデジタル署名するような仕組みにしないと、オンラインバンキング等は攻撃対象になり続けるのでしょうね。PCやブラウザは信用できないですかね…

    今思いついたのですがより簡易な方法として2重にメッセージダイジェストを取る方法だと、PCと携帯が通信しなくても安全性を確保できますね。

    トランザクションのメッセージダイジェストをPCに表示
    携帯のアプリでメッセージダイジェストをさらに共通の秘密情報含めた値でメッセージダイジェストを計算
    利用者はダイジェスト値も入力してトランザクションを送信

    と言った感じで処理すればよいですね。実際にPCと携帯が通信しなくてもよい分、今すぐにでも実装できますね。

  • Wikiのページランクが復活

    私のWikiはGoogleのページランクが表示されないなと思ったらSEOの基本を忘れていました。
    セキュリティなども考えてwikiのURLを

    http://www.ohgaki.net/wiki/

    から

    http://wiki.ohgaki.net/

    に変えた際、手っ取り早くApacheのmod_rewriteで旧URLから新URLに書き換えた(Redirectさせた)のですが、これはSEO的にはやってはならない事の一つです。Redirectによるページの更新をするとサーチエンジンスパムが可能になるのでこういった仕様になっているのだと思います。エラーページハンドラを作り「新しいページはこちらです」と新URLへのページを表示する方法を取ればページランクを落とすこと無く引越しできます。しかし、ページランクが表示されていても、されていなくても私のWikiの場合はGoogle検索の順位はあまり変わらなかったようです。新旧ページがほとんど同じだったので救済策(?)として検索結果順位は変わらなかったのかもしれません。世の中にはRedirectによる引越しでGoogle八分状態になったサイトもあるようなので商用サイトの場合はRedirectによる引越しには注意しましょう。

    Googleのクローラは毎日来ているようなのですが、Redirectを止めてからページランクが復活するまでにかなり時間がかかります。これは私のWikiの場合に限らず時間がかかるようです。顧客のサイト/ページでやってしまうと面倒なことにもなりかねないので注意が必用ですね。

  • htmlspecialchars/htmlentitiesの正しい使い方

    追記:このエントリは古い情報です。今のHTMLエスケープの情報は以下の新しいエントリを参照してください。

    https://blog.ohgaki.net/php-html-escape

    (さらに…)

  • 全ての国内電話番号が10桁に

    Webシステムの開発に限った事ではありませんが、入力チェックが少し簡単になります。来年から全ての国内の電話番号が10桁になるようです。最後の9桁地域は箱根だそうです。9桁から10桁になるのは来年の2月25日から。

    9桁から10桁への移行は1961年からの開始したそうですが半世紀近い時間がかかっていますね。

  • 文脈認識

    文脈認識技術とは、顔認識技術を強化したようなものだという。Riyaのソフトウェアは人物の顔を調べるほか、その人物がきているシャツなど、他の手がかりも利用して似たものを見つけ出す。さらに、このソフトウェアは画像の中にあるテキストも探すため、たとえば「フロリダへようこそ」という看板の横に立つ人物の写真は、「フロリダ」というキーワードで見つけ出せるという。

    不勉強なもので知りませんでした。

    http://www.riya.com/

    がそのサイトだそうですが今アクセスしてみるとバグ(?)で使えませんでした… そういう事もありますよね。バグ(?)のおかげでResinがサーバであることが判りました。

    しかしこの技術とサイト、爆発的な人気を呼ぶ可能性がありますね。

  • OWASPガイドの日本語訳

    Webシステムを開発している方は必読のSWASP Guideの日本語訳がリリースされているようです。実は1.1は私も読んでいません。さっき日本語版の目次を見たらページ数が随分すくななりすっきりしたような感じでしたが、必用な項目は含まれているように思えました。ダウンロードしたので時間があるときに読むことにします。

  • Zend Framework 0.1.2リリース

    3/8にZend Framework 0.1.2リリースされています。

    解凍すると10MBくらいになります。ドキュメント、テストコードなども含まれているのでフレームワーク本体は2MBくらいのようです。さっと見た程度ですがよく出来ていそうな感じです。PHP5以上が必要です。多分PHP5.1でないと動作しないように思えます。(確かめていません)

    http://devzone.zend.com/

    はZend Frameworkで作られているそうです。