福岡でのセミナー資料のダウンロード

福岡でのセミナー資料のダウンロード

福岡でのセミナー資料をWikiからダウンロードできるようにしました。

会場でもご案内しましたが高橋メソッドで行ったプレゼン分のアップロード予定はありません。

今気が付きましたが、高橋メソッドが本になったんですね! 名前も「でかいプレゼン」しかも今のAmazonのランキングは4000位くらい!すごい :)

PHPセキュリティホール対策緊急セミナー福岡

日付が変わってしまい、今日ですがまだプレゼンファイルを作成中です…

私は状況がよく分かっていないのですが、どうも席にあまりがでそうな状況だそうです。実験というのも変ですが、試しに明日「このブログエントリを見て来ました」と言われた方にこのブログでも宣伝させていただいている「改訂版PHPポケットリファレンス」を2名様にプレゼントします。私は2枠あるので各セミナーの終わりに「ブログを見ていらした方は?」とお聞きします。その際に手をあげてください。

次がセミナーの概要です。近くでお時間がある方は是非どうぞ。

「PHPセキュリティホール対策緊急セミナー福岡」

2005年10月31日、PHPの最悪とも言えるセキュリティホールが見
つかりました。福岡の多くの企業は、Webの運用には次のようなシ
ステムを多く使われています。
LAMP(Linux + Apache + MySQL + php)
LAPP(Linux + Apache + PostgreSQL + php)
そこで、今回この脆弱性の緊急対策を中心にphpの新しい話題のご紹
介を行います。このphpにたいする緊急パッチを作成した大垣さんな
どコアな方から直接詳細を聞く事が出来ます。またphpはJavaのよう
にフレームワークがまだ一般的ではなく作成者によってかなり作りが
違うのが現状です。そこで大規模なシステム開発に向けてのヒントを
共有しphp技術者の向上に役立てばと考えています。

年月日:2005年12月2日(金)
時間:13:00から17:10
場所: 福岡市博多区博多駅東2-3-1 NTT博多ビル東館1階
電話:092-473-4330
http://www.itplaza.net/itplaza/fukuoka/fukuoka.htm
受講費用:1,000円
人数:50名(先着順)
講師:
大垣靖男
内田 圭亮(エヌビーエス株式会社)
案浦浩二(株式会社アニーズ・クラフト)

主催:ライジングサン株式会社
協力:
株式会社アニーズ・クラフト
日本オラクル株式会社 西部支社
NTT西日本(西日本電信電話株式会社)
エヌビーエス株式会社
ゼンド・ジャパン株式会社
日本PHPユーザ会
日本PostgreSQLユーザ会

プログラム
13:00 受付
13:30~13:40 「あいさつ」
13:40~14:30 「php脆弱性とバージョンアップ」大垣さん
14:40~15:40 「php脆弱性をIPSで回避」エヌビーエス
15:50~16:30 「エンタープライズでphpを使う時のTips」大垣さん
16:40~17:10 「Zend Core for Oracle 日本語版」

懇親会
18:00~20:00、費用は、2,500円程度?

廣川さんのPHPウォッチ

廣川さんのPHPウォッチにも書いてありますが、PHP 4.4で壊れてしまったmbstringの関数が修正されています。廣川さんが枡形さんのパッチやその他のパッチをコミットされていたのでこれらの問題に困っていた方はCVS版(PHP 4.4.2RC)などを試されるとと良いと思います。ざっと見た感じではPHP 5.1.1にはPHP 4.4.2に含まれている修正が全て入っています。

この記事にはPHP6の概要も記載されています。まだまだ気が早いとは思いますがPHP6でも動くコードを書くためのヒントになると思います。

PHP 5.1.1がリリースされました

標準でDateクラスはまずいでしょう、と思っていたのですがやはりクレームが沢山ありました。Dateクラス問題解消のために5.1.1がリリースされた、と言っても良いと思います。safe_modeがデフォルトOnになったにも関わらずcURLのsafe_mode時の動作がまずい、HTTPダイジェスト認証の動作が異なる、という問題も速いアップデート版リリースの一因です。

備考1:標準でDateクラスが定義されるようになった、と言うことは自前でDateクラスを持つコードは5.1では動作しない事を意味します。

備考2:普通はDIGEST認証は使いません。クライアント任せの部分があり互換性に問題があるからです。とは言ってもイントラネットなどでクライアント決め打ちでDIGEST認証を使っている環境では動作の違いは致命的です。

追記:
getenvでエラーが出たのは–enable-safe-modeを指定していたのと同じ状態だったようですね。わざわざこのオプションを付けた記憶はないのですが(というより指定してコンパイルした事がない)ちょっと条件は分からなくなってしまいましたが–with-apxs2を指定しているのにlibphp5.soが生成されなくてmake installでlibphp5.soが所定の場所にインストールされず、ハマリそうになりました。生成された./configureスクリプトが変だったのかな?

不良コンデンサ問題

CNet Japanによると不良コンデンサが大きな問題になっているようです。

今回問題になったのは、色が黒と金の2色で、長さ約2.5センチの低ESR(等価直列抵抗)アルミニウム電解シリンダというキャパシタで、側面に HN(M)およびHM(M)のマークがあり、上部には「X」の文字が刻印されている。このキャパシタは一部のマザーボードやビデオカード、さらにPC、モニタ、ビデオデッキ、テレビなどの電源にも採用されている。

7年くらい持つはずが3,4年で不良になるそうです。気になる方は問題のコンデンサの写真も載っています。iMac G5, Dell OptiPlex, HP wx等で問題のコンデンサが使用されている事が分かってるそうです。

これらの不良キャパシタには、膨張、突出、流出、硬化などの現象が発生し、その結果画面の表示がおかしくなったり、断続的にシステムが停止してしまうことが明らかになっている。

調子が悪くなったらHDD、メモリチェック、のみではなくコンデンサチェックも必要なのですね…

カレンダーナビゲーションリンクの作り方

人が作ったシステムを見ていると色々気付かされることがあります。b2evolutionのカレンダーなどのナビゲーションリンクはエントリが無い未来・過去の日付もだどれる様になっています。私は、特定の場合を除き、通常表示できるデータがある範囲だけリンクが表示されるように作ります。

このb2evolutionのナビゲーションの仕様はデータベースには優しい仕様ですが、検索エンジンのインデックス作成robot等には優しい仕様ではありません。例えば、あるロボットは3000年のエントリくらいまで検索していってくれます。当然役立つ情報はなく「申し訳ありません。表示する投稿がありません…」と表示されるだけです。アクセス統計情報、SEO的にも問題ではないかと思います。

データベースと連動したサイトを構築する場合にはロボットによる無限検索のリスクを考えないとならないです。データベースにも検索エンジンにも優しいカレンダーナビゲーションにするにはデータベースに新たなエントリ追加があった場合にナビゲーション用データをキャッシュする仕組みにすると良いと思います。

b2evolutionのコメントスパム削除

このブログ(b2evolution)にコメントやトラックバックがあった場合、メールで通知されます。しかし、通知されたメールに記載されている削除/編集用URLをクリックしても必要なデータが表示されません。コードを詳しく追いかけていないので根本的な対処ではありませんが、以下の変更でメール記載されたURLでコメント/トラックバックを表示し編集できるようになります。これでスパマーのキーワード登録も簡単になります。(b2evolutionは結構前からスパムデータベースを共有できるようになっています)

admin/_edit_showposts.phpの変更箇所(行頭の数字は行番号)

59 //$MainList = & new ItemList( $blog, $show_statuses, $p, $m, $w, $cat, $catsel, $author, $order, $orderby, $posts, $paged, $poststart, $poste nd, $s, $sentence, $exact, $preview, '', '', $timestamp_min, $timestamp_max );
60 $MainList = & new ItemList( $blog, $show_statuses, $p, $m, $w, $cat, $catsel, $author, $order, $orderby, $posts, $paged, 0, $postend, $s, $se ntence, $exact, $preview, '', '', $timestamp_min, $timestamp_max );

私はあまり使わないのですが「編集」のページで以前に書いたエントリを表示出来なくなるようです。他にも副作用があるかも知れません。取り合えず溜ったコメント/トラックバックスパムの削除が面倒だったので上記の変更をしました。

ところで0.9.1からrel=”nofollow”が付く、とb2evolutionのサイトに記載されているのですがrel=”nofollow”はメンバーのコメント等にのみ付いているようです :(

構造計算書偽造とインターネットに接続されたシステムの類似点

マンション等の構造計算書を偽造した事件が大きな話題となっています。偽造した構造計算書を作成した設計事務所の設計士が「コストを安くしないと仕事をもらえないと思った」、建築業者が「施行主の指示の問題の建築事務所を利用した」等を発言していると聞きインターネットに接続されたシステムに類似点があることが気になりました。

本来Webサイトは「安全」である事に重点をおいて構築されなければならないですが現実はそうではありません。インターネットのシステムの場合、他人の生命に影響するようなシステムはほぼないこと、財産に大きく影響するシステムもネットバンキングやネット証券のようなごく一部のシステムしかないことから「安全」に対してそれほど大きな注意が払われていない事がよくあるようです。実際、比較的有名なサイトのセキュリティ管理が、ごく基本的なセキュリティ管理さえ行わず、非常に悪い状態にあった事例が多くあります。少し古い話になりますが、日本の著作権関連会社の代表者が、安全なWebサイトでなければサイトを公開できなければ中小の企業はWebサイトを公開できないではないか、といった旨の発言をしたという記事もありました。”組織として中小なんだからセキュリティ対策が出来ていなくても当然”と開き直ってよい物ではありません。建物が倒壊すると建築主以外にも被害が発生するように、インターネットシステムの安全性が確保できていないと他人を攻撃する踏台にされ他人に大きな迷惑をかける事になる場合もあります。

安全なシステムを構築するには、安全性を考慮しないシステム構築より多くの費用が必要となるのは明らかです。しかし、Webシステム開発の場面でも「コストを安くしないと仕事をもらえないと思った」や「発注者の指示で必要なセキュリティ対策が施せない(施さない)」ケースは非常に多いのではないかと感じます。システム構築は建物の建築とは違い安全性が十分であるか確認する仕組みが無いため、より状況が悪い事はこの業界の方でなくても分かると思います。

プロによって作られた物が「安全」であることが当り前ではないという類似点が構造計算書偽造事件とインターネットのシステムにあります。安全性に問題が発生する背景にも類似点があります。この状況を変えるには発注者と受注者、”両方”の意識を変えなければなりません。

# プロが作っている物でも驚くような仕様になっている場合
# があります。インターネットとは関係の無い古い例で
# すが、1985年以前に作られた銀行のキャッシュカードには
# 磁気テープにカードの暗証番号が保存されていた物がある
# そうです。
# インターネットのシステムでこれに類するような事例は多
# くあります…

Web 2.0

メモとして。Tim O’ReillyのWeb 2.0論文の邦訳がCNet Japanに掲載されている。

元はこちら
http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html

リンク:
http://www.oreillynet.com/pub/a/network/2005/10/27/distributing-the-future.html
http://www.onjava.com/pub/a/onjava/2005/11/02/community-of-web-20.html

新しいようで古いフィッシングの手口

”「捨てアド」取りを目的とした新手のフィッシング”としてIT Mediaで紹介されていましたが、新しい手口ではありません。CAPTCHA方式の人間認証(プログラムではなく人間であることを確認する事。このような用語は見た事がないので私製造語かも)を破る方法として同様の手口が即座に考案されています。私がこのブログで紹介した(「グラフィックテキストも安全ではない」)のは最近の事ですが随分前から知られている手口です。

IT Mediaの記事で目新しいのはわざわざ攻撃が発覚しやすい銀行サイトを利用している事ですね。しかし、私がスパマーだとしたら銀行サイトやその他まともはサイトをフィッシングには利用しないと思います。「私はスパマーだ。見つけてくれ」と言っているような物ですよね。

マルチブート環境の構築ページを更新

WikiにGRUBのChainloader(別のブートプログラム呼ぶ機能)を利用したマルチブート環境構築のページがあります。デバイスIDが間違っていた部分がありました。比較的参照数も多いようなのでここでも修正した事を書きます。もし参考にされた方がいらしたら修正したのでご覧ください。

私のデスクトップPCには3、4つのLinuxディストリビューションがインストールされているのが普通の状態なのでchainloaderを使ったマルチブート環境にしています。前にGoogleで検索してもこの手のマルチブート環境の構築手順が書いてなかったのでこのページを作りました。WindowsのNTLDRやGRUBの/bootパーティション共有を使ったマルチ・デュアルブートよりはるかに使いやすいです。興味のある方は是非どうぞ。