Home > 雑記

雑記 Archive

CakePHP1.1.13.4450&1.2.0.4451alphaリリース

この記事の所要時間: 026

CakePHP1.1.13.4450&1.2.0.4451alphaがリリースされています。

1.1.13.4450はバグフィックスリリース、1.2.0.4451alphaは1.2系のアルファ版となっています。

双方ともに多くの変更・修正が行われており、CakePHP Sessonコンポーネントに任意のコードが実行できる脆弱性 | Shin x blogも修正されています。

1.2の正式リリースが一歩一歩近づいてきましたね。

CakePHP Sessonコンポーネントに任意のコードが実行できる脆弱性

この記事の所要時間: 19

Sessionコンポーネントですが値を保存するキーに特定の値を仕込むと任意のコードが実行できる脆弱性があります。

この問題は1.1/1.2どちらにも存在します。

Sessionコンポーネントの親クラスであるCakeSessionクラス[cake/libs/session.php]では、セッション関連の処理にeval()を使用しています。このeval()に渡すPHPコード(evalで実行されるコード)を生成する過程で、セッションキーを使用するのですが、変数のチェックが不十分なため、任意の処理を書くことができてしまいます。

通常セッションのキーにGET/POST/COOKIEといった外部からの値は使用しないと思うのであまり影響は無いかもしれませんが、もしセッションキーにこれらの値を使用している場合は値のチェックを厳密に行う必要がありますのでご注意を。

念のためtikcet投げておいたのでいずれ修正されるかと思います。
早速パッチを適用してもらいました。openだったのは正味20分くらいでした。(早!)
Thanks phpnut!!

[.]区切りのセッションキーを配列にして使うためにeval()を使っているのですが、これはわざわざeval()を使う必要があるのでしょうか。安全性を考えるとこういった関数は極力使わない方が吉かと。

PHPテクニカルセミナーin東京に参加してきました

この記事の所要時間: 117

PHPテクニカルセミナーin東京に参加してきました。

関西在住なので平日+東京でのセミナーは普段なら参加しないのですが、Do You PHP?shimookaさんが参加されるという事だったので思い切って申し込みしました。

セミナーはフレームワークについての内容でとても興味深いお話が聞けました。Webで読むだけでなく実際にお話を聞くと理解度が格段に違います。これだけで十分来た甲斐がありました。

さらにその後の懇親会が楽しすぎました。

正直こういった場はあまり得意ではないのですが、立食形式が良かったのか、参加者の方々が良かったのか、風邪+薬で頭がボーとしてたのが良かったか;-)、この日はとても楽しく色々な方とお話ができました。

目的のshimookaさんは私がイメージしていたままでとても紳士な方でした。技術の話題から家庭の話題まで少しの時間ですがお話しできてとても楽しかったです。

あとhaltさんに「blog見てます」と声をかけてもらったのも嬉しかったです。声をかけることはあってもかけられた事は無いもので。(実はその場ではhaltさんだと分かっていなかったのですが、翌日blogのコメントで知りました。。。)

他にも色々な方々とお話したのですが、お名前を出して良いものやらと思い自粛します。。。

今回はホント東京まで行って良かったです。ありがとうございました。

# すっかり味を占めてしまったのでまた参加してみたいと思います。また相手してやってください。;-)

ちょっとだけ役立つblog

この記事の所要時間: 130

あけましておめでとうございます。

昨年の8月にはじめたこのblogですが、当初の目標の100エントリを超え、読んでいただける方も少数ながら増えてきました。ありがとうございます。

自分の書きたいことを書くと言っても、公開している限りはやはり誰かに読んでもらいたいものです。読んでいただいている方々の存在がエントリを書く動機付けになっています。

blogを書き出した動機の一つに「インターネットへの恩返し」がありました。日頃からYahoo!・Google経由で多くのサイトの情報を参考にさせて頂いています。

一般的な問題は有名どころのサイトに情報があるのですが、特殊な問題(環境、現象等々)の場合、誰もがその問題に遭遇するわけではないので事例を調べるのが困難になります。もちろん自力でも調査するのですが、(それほど有名ではない)個人サイトの情報に助けられたことが何度もありました。

問題の解決策がずばり書かれている事もありますが、多くは若干環境が異なったり、現象の内容と調査結果は書かれていても問題自体は解決していない場合もあります。しかしそれでも何らかの情報があるだけで問題解決の助けになります。

そこで思ったのが「多くの人に支持されるような有名サイトで無くても誰かの役に立つ」という事です。冒頭にも書きましたが、せっかく書いても誰かに読んでもらえないとやはり楽しくありません。

どんな情報でも(有名サイトでなくても)いずれどこかの誰かに役立つと思えば「書こう」という気になります。(どんなに既知な情報でも少なくともそれを知る以前の「自分」は知らなかったわけですし)

そんな感じで今年も「ちょっとだけ誰かのお役に立てるblog」を目指して書いていきたいと思いますので、よろしくお願いします。

ORDB.org is shutting down

この記事の所要時間: 116

メールの不正中継ホストのデータベースであるORDBが活動を停止するようです。

We regret to inform you that ORDB.org, at the ripe age of five and a
half, is shutting down. It’s been a case of a long goodbye as very
little work has gone into maintaining ORDB for a while.

Open Relay Database –

現状ではSPAM対策としての効果が疑問視されているようですし、IPベースでの制限による問題が指摘されてきました。(詳しくはspamhaus.orgをはじめとするIPアドレスベースのブラックリスト(RBL)を使ってはいけない

ORDBの停止により同様のサービスを行っているサイトにも影響が出るのでしょうか。

We encourage system owners to remove ORDB checks from their mailers
immediately and start investigating alternative methods of spam
filtering.

Open Relay Database –

との事なのでSMTPやSPAMフィルタで参照されている方は設定を変更しておきましょう。

地図マッシュアップサイト

この記事の所要時間: 058

Google MapsやYahoo! Mapsなどの地図サービスをマッシュアップしたサイトです。

Flash Earth …satellite and aerial imagery of the Earth in Flash

Flashで出来ています。メニューのサービスを切り替えることにより、表示しているポイントの地図が切り替わります。

地図を表示したままサービスを切り替えられるので、地図の違いを手軽に確認できます。地方を拡大表示したい場合などは地図が表示されないサービスもあるので、表示してくれるサービスを探すのに使えそうですね。

なかなか気持ち良く動作します。マッシュアップするのにFlashを使うのは案外相性が良いかもしれません。

サポートされている地図サイトは以下です。

  • Google Maps
  • Microsoft VE(aerial)
  • Microsoft VE(labels)
  • Yahoo! Maps
  • Ask.com(aerial)
  • Ask.com(physical)
  • OpenLayers
  • NASA Terra(daily)

Binary 2.0カンファレンス2006

この記事の所要時間: 227

Binary 2.0カンファレンス2006にストリーミングとIRCで参加しました。

いちおう一時期プチバイナリアン(Z80ですが)だった時期もあったので興味津々で見ていました。

Hello, binary world

GCC拡張自体も面白かったのですが、それ以外も色々勉強になりました。

  • mail関数はプロセス全体で見るとただの一関数
  • 変数での関数でもただのシンボル
  • mainに数値を入れておくとマシン語として動作する

何となくは知っていたのですが、普段Cを書かないのでこうして聞くとあらためて「なるほど」と思いました。(「読んで」「書いて」さらに「聞く」とより理解が深まります。)

X日で作る仮想マシンモニタ(に向けて)

  • シミュレータ上で開発すればメモリの状態なんかも確認しやすい。

開発カレンダーを見るとあっという間にモノができあがっていくのが凄かったり。

getcontextの怪

  • 本当に根本の問題。
  • これからIA-64化が進めばPHPなんかにも出てくるかもしれない。
  • setjmpやgetcontext、レジスタスタックが勉強になった。

問題の対処法も勉強になりました。

マルチコア時代の並列プログラミング:ロックとメモリオーダリング

lock-free synchronizationのアルゴリズムが分かりやすかったです。あと高いスキルがある方でも「KISS(keep it simple)」が大事なんだと実感しました。

# 高度なお話しを分かりやすく、かみ砕いて説明して頂けたのはとても好感を持てました。

Web2.0時代のAjax Binary Hacks

GIF画像にJSONデータを埋め込むのは面白かったです。時間の都合ではしょられたのですが、できれば最後まで利きたかったです。

# ネタも最高でした。「ふたりはバイナリアン」w

携帯 Flash でバイナリ処理

以前Flash Lite1.1で開発した事があります。ほんと大変(面倒)です。特にFlash5以上で開発経験があるとあまりの違いに戸惑います。それだけに単純に「よくやるな~」という印象でした。さすがバイナリアン。;-)

できれば作成されたソースを見てみたいですね。

tty hacks for PS3 Linux

Wiiリモコンと効果音の大事さw

GNU on Binary 10.0

telで見逃してしまった。。。

ASCII 1.0

MSXが動作しているのに感動しました。いやほんと。1chip MSX買おうかな。

やはりバイナリ系の話は楽しいです。プレゼンの主題ももちろんですがそれに付随するお話しもとても勉強になりました。低レベルで何か作ってみたくなりますね。;-)

ストリーミングとIRCのおかげで大阪からセミナーに参加する事ができました。皆さんありがとうございました。

複数のレイヤで考える

この記事の所要時間: 147

複数のレイヤで考えるというのは大事ですね。

Webアプリケーションって、H/Wを始め、ネットワークやOS、ApacheやPHP自体などいろいろなレイヤの上に位置するものだし、それらの技術の上に成り立っているものなので、「コーディング」というレイヤの上っ面だけかじって、「Javaできます」とか「PHPできます」ってのはどうかと。コーディングも大事ですが、それより下のレイヤもそれ以上に大事だと思います。それらのレイヤで簡単に解決できるハズの問題を、JavaとかPHPのレイヤで解決しようとしてるのを目にすることが多すぎる気がします

Do You PHP はてな – LANスイッチングセミナー その2

はげしく同意です。

複数レイヤで考える簡単な例としてはWebアプリケーションのアクセス制限があります。

クライアント側のIPを見てアクセス可否を判断したい場合は、FW・ルータ・サーバ(iptables等)・Apache(Webサーバ)・アプリケーションサーバ・アプリケーションと様々な箇所で対策を行う事ができます。(PHPならアプリケーションを「php.ini等の設定」と「コード」にも分けられますね。)

コードでがりがり書いたものが、実は下位レイヤで設定ファイルを少し触るだけで実現してしまったりします。

あとアクセス制限なら下位のレイヤで制限をかけておけば、当然それより上位のレイヤにアクセスする事ができなくなります。その結果、負荷が軽減されたり、セキュリティが確保されたりします。

もちろん要件や環境によってどのレイヤで解決するべきかは変わってきます。レンタルサーバなどでは通常ネットワーク周りは触れないでしょうし、アプリケーションを不特定多数に配布する事が前提ならできれば全て配布物(アプリケーション)で解決したいでしょう。

ただ知っている事により問題解決の引き出しが増えることは間違いないです。

アプリケーション以外のレイヤも是非触ってみましょう。

# 目の前には1月前から箱に入ったままのRTX1100があったりします。。。
# 早くやれよ>自分:-P

PHPテクニカルセミナーに参加してきました。

この記事の所要時間: 116

PHPテクニカルセミナー – PHP言語で快適デバッグに参加してきました。

平日の午前中という時間帯に関わらず多くの人が集まっており満員御礼状態でした。(プレゼンターの田中さんも触れられていましたが正直私もこんなに集まると思っていませんでした。:-p)

セミナーではいくつかのデバッグ手法・ツールが紹介されていました。

  • print_r/var_dumpメソッド
  • PEAR::Var_dump
  • dBug
  • DBG
  • Xdebug
  • Gubed
  • Simple PHP Debugger
  • VS.Php

印象に残った内容です。

  • ブラウザ->DBG->DBGListener->デバッガの流れが分かりやすかった。
    (ポイントだったようで何度も説明されていました。)
  • Gubedは試してみたい。
  • VS.PhpはSubversionクライアントにも使える。
  • VS.Phpはdeployにも使える。
  • VS.Phpは複数バージョンのPHPエンジンを使える。
  • VS.PhpはMicrosoftが作っているわけではない。
  • VS.Phpは試用版がある。

このセミナーはVS.Phpの販促だったと思うのですが、DBG+DBGLisener+デバッガの構築が複雑だっただけに、それと対比してVS.Phpがいかに簡単に導入できるかをアピールすれば良かったのように思いました。

関西ではPHPのセミナーは少ないので次回が開催される事を楽しみにしています。

livedoor Readerで「ピンを開く」数を増やす

この記事の所要時間: 051

これ何気に困ってました。Firefoxのポップアップブロック数制限によりlivedoor Readerで「ピンを開く」を実行しても20画面以上開けませんでした。いつのまにかピン数が15を超えるとピンするのを躊躇したり。。。

で、livedoor Readerでブロックされるという件だけど、キー操作でウィンドウを開くってのはユーザーが起こしたイベントに紐付いたwindow.openではあるのだけれど、タイマーを使って順次開いたりしているので、ブラウザ側で判別するのは難しいだろうと思う。なんにせよサイトで許可していても開かないことがある、っていうのは、説明しづらくて非常に困る感じがする。(今のところabout:configやら拡張やらでdom.popup_maximumを増やすしか無いようだ。)

最速インターフェース研究会 :: Firefox2のポップアップブロックについて調べてみた

ありがたや。これで気にせずにピンを付けられます。;-)

ホーム > 雑記

検索
フィード
メタ情報

Return to page top