来週PHPプロ・スタッフの面接があるのでかなりの確率で質問されるというWebアプリケーションのセキュリティに関して調べてみました。

■抑えておく用語

・XSS(クロスサイトスクリプティング) →フォームから入力した値がHTMLの一部として実行される場所で悪意あるスクリプトを動かしたり。具体的にはクッキーをパクッて他人のセッションを奪ったり。

・SQLインジェクション →SQL文を流し込むこと。例えばフォームの値をwhere句の条件に使う場合、入力フォームに”“1 or id = 2”“と入力したら・・・。

"update foo set cost = 100 where id = ".$_POST["id"];

・セッションハイジャック →他人のセッションを乗っ取ること。セッションIDの入ったクッキーがXSSによって盗まれたり、そのIDを使って成りすまされたり。

■対策

・GETパラメーター改竄 →GETの使用を最小限に留める。(Action=xxx的な処理の振り分けのフラグだけとか)

・HIDDEN値改竄(そしてAction値をフルパスに変更) →HIDDENを使わない。セッションにする。

・XSS →POSTにhtmlspecialchars。

・セッションハイジャック →セッションIDを単純な値にしたりCookieが盗まれなければ大丈夫。PHPのデフォルト設定ならそこそこ安心?(セッション有効時間24分、セッションIDはCookieに保存、Cookieはブラウザ閉じたら削除)

・SQLインジェクション →フォーム値の地道なValidationしかない?

少し前のPHPアプリのソースを読んでいて気付いた。

PEAR DBのfetchRowメソッドは1.5.0RC1を境にDB_common(DB_pgsqlとか)からDB_resultに移ってる。

1.4.0の場合

$row = $db->fetchRow($result);

1.5.0RC1以降の場合

$row = $result->fetchRow();

1.4.0まではなんでDBコネクションのオブジェクトのメソッドがfetchRowしてたんだろう・・・。古いスクリプトを今のPEAR DBで動かしたらfetchRow()が無いって。「えぇ、えぇ、無いですよ」

BECK (Volume9)
BECK (Volume9)
Posted with amazlet at 04.08.16
ハロルド作石
講談社 (2001/11)
売り上げランキング: 32,289
通常24時間以内に発送します。
おすすめ度の平均: 5
5 BECK存続の危機

Beck読みました。何故か全部画像で。(要するに買ってない) おじさん10代の時に読みたかったよ・・・。でも面白い。 おれも昔テレキャス欲しかった・・・。

真夜中、Pentium4 1.6GHzのパソコンを近所に捨ててきました。(不法投棄)

思い切って捨てるのスキルがアップ!

と言って深夜に一人で回し蹴りした。(ロマサガ)

超大盛・ペヤングソースやきそば – [コンビニグルメ]All About Japan

peyoung.jpg

このカップ焼きそば、大きさがミニ・並盛・大盛という3種類ありますが、このたび『超大盛』が発売されました。最近のカップ焼きそばは先日紹介した日清食品『MEN’S Spa王』のように大盛商品が主流ですが、その中でも一歩飛び出た大容量カップ焼きそばになっております。

おはようございます。小学校の頃あだ名がぺヤングだったこともあるbGです。(事実)

カップ焼きそばの王様、ぺヤングに超大盛りがあるそうです。

しかしこのコンビニグルメのガイドの人を見てると、「コンビニ食品ばっかり食べてるといろいろ栄養が足りなくなるんだなぁ」とコンビニの暗黒面しか見えてこない気がします。

「XMLに手軽にアクセスしたい。ただしPurePerlで。」

設定ファイルごときにSAXやDOMはかったりしだりぃしなので上記のようなモジュールは無いかとずっと探してました。そしたらあったっっっ・・・!!??

XML::Parser::Lite::Tree ・・・っっっ!

XML::Parser::Lite 自体が XML::Parser を正規表現ベースで真似た簡易版。それを使って手軽にTreeを作ってくれる。

XML::Parser::Lite::TreeXML::Writer があれば普通に配布してるCGIスクリプトにもXMLのパワーがっ!?

BBSの次のバージョンを作ってる関係でHTML::Templateじゃなくて評判の良いTemplate-Toolkitというヤツを使ってみました。

最初 Template::Toolkit っていうモジュールかと思ってCPANで必死に検索してしまいました。単に Template だったとは・・・_| ̄|○

使ってみたらこれが(Template-Toolkitが元祖なんでしょうが)PHPのSmartyとほとんど同じ!

[% var | foo | bar %]

みたいにパイプで修飾子を繋げていくとこも一緒なのでまったく違和感無く使えました。やっぱり変数の見た目をテンプレ側の修飾子で変えるやり方は(MVC的に)理に適ってて気持ち良い。

スレッド内容—IKEMEN, 日本人、日本の天皇はウジムシだ!

明日のサッカーの試合はきっと日本の選手に対して”のIKEMEN”“を言う;!!!!!!! 私は許す。

お互いの投稿が自動翻訳される日中交流掲示板。 イケメンが日本人にとって最大の侮辱を表す言葉だと煽る日本人に対して中国人がIKEMENを連発。IK○○ENぬるぽだけは使うな等・・・。

amazlet.png

Amazonのアソシリンクが簡単に作れるAmazlet。 糞忌々しいアソシリンクがこんな簡単に作れるとは。さっそくBlog Hacksのリンクに使ってみました。思う壺です。

Blog Hacks ―プロが教えるテクニック&ツール100選
powered by
amazlet
宮川 達彦 伊藤 直也
オライリー・ジャパン (2004/08/07)
売り上げランキング: 256
近日発売 予約可

Blog Hacks注文しました。何故か買わなければいけない気がして・・・。