PEAK XOOPS - News in englishin japanese

Archive | RSS |
  
Poster : GIJOE on 2006-05-18 18:14:07 (10173 reads)

in englishin japanese
XOOPSに限らず、Webアプリケーションのエラー処理で、リダイレクトを用いるケースが多く見られますが、これは本当に正しいでしょうか?

もちろん、POSTデータを処理した後のリダイレクトには意味があります。ブラウザの「戻る」ボタンとフレンドリーになりますし、正常な処理ですから、リダイレクト画面(header('Location:...')ではなくmetaでリフレッシュするタイプ)のメッセージが読めなくても、さほど問題になりません。

しかし、エラー処理において、リダイレクトするのはどうでしょうか?

そのエラーが、通常の操作において頻繁に起きうるものであればともかく、通常あり得ない値が渡されたケースなどにおいては、die()でさっさと終了すべきでしょう。これは、製作者にとって楽、というだけでなく、善意の利用者にとってもメリットがあります。なんらかの理由でエラーになったとしても、エラーメッセージをじっくり読めますし、どこだか判らないページに飛ばされる実行時間がなくなるだけでもありがたいでしょう。

また、エラー処理のリダイレクトによる無限ループもありえます。通常のブラウザであれば正常なリダイレクトになっているのに、一部の翻訳サイトを経由した場合にだけ、無限ループになる、という現象も見つかっています。(もちろんこれは、その翻訳サイトの問題ではありますが、それらによって食いつぶされてしまう負荷は無視できないでしょう)

もちろん、ブラウザで戻ることを禁止するタイプのガチガチなアプリケーションもあるでしょうから、一概には言えませんが、基本的にはリダイレクトよりdie()を先に検討すべきだと私は考えます。


Poster : GIJOE on 2006-04-06 10:39:12 (15011 reads)

in englishin japanese
ここに来て立て続けに、アップロードされたzipファイルを解凍した中身を反映するコードを書いてきましたが、実のところ、これらで利用している PEAR::Archive_Zip には、穴があります。

それは具体的には以下の2点です。

(1) ファイルシステムに解凍すると、Directory Traversalがある
(2) 解凍処理でメモリをすべて食いつぶすようなzipファイルが簡単に作成可能である

このうち、(1)に対しては明確な対応策があります。ファイルシステム上に解凍しなければ良いのです。


	$reader = new Archive_Zip( (アップロードテンポラリファイル) ) ;
	$files = $reader->extract( array( 'extract_as_string' => true ) ) ;

とすることで、ファイルシステムには影響なく、$files に配列として保存されます。あとは、適切に保存処理を行えば良いだけです。

その一方、(2)の方は、防ぎようがない、というのが実情です。ライブラリの方にパッチをするとしても、かなり大がかりになってしまいます。

以上から、zipでアップロードして、それをサーバ側で解凍する機能は、なんらかの方法で信用できるユーザに限るしかない、というのが実情です。

ファイルアップロードについては、CSRFの心配はありませんから(そんなのがあったら、今話題のantinnyよりも怖いでしょう)、直接攻撃系だけをケアすれば良いのが救いです。

0 comments

Poster : GIJOE on 2006-01-27 06:40:22 (49934 reads)

in englishin japanese

2つ前記事
前記事
プログラミング解説書籍の脆弱性をどうするか

私自身、3日くらい前に教えていただいたのですが、どうやら、前の記事を書いた1/21の当日に高木氏からコメントを頂戴していたとのこと。ずいぶんとすぐに見つけていただき、恐縮至極です。とても良いお仕事なのでしょうね。

しばらく日記をちゃんと書けそうにない

さきほどざっと読ませていただきましたが、予想していたほどの量ではなく、また、こんな大嘘がまかり通っては困るので、当初予定していた「『サニタイズ言うなキャンペーン』の嘘」の前に先んじて一通りのコメントをつけておきます。

Read more... | 5225 bytes more |0 comments

Poster : GIJOE on 2006-01-21 05:42:22 (42578 reads)

in englishin japanese
前記事
プログラミング解説書籍の脆弱性をどうするか

高木氏が12/27のブログエントリで書かれた、拙著「PHPサイバーテロの技法」に対する批判は大きく2点に分けられると思います。

(1) 「サイバーテロ本」では、その場しのぎ的な「サニタイズ」を行うコーディングを推奨している
(2) 「サニタイズ言うなキャンペーン」

Read more... | 8302 bytes more |1 comments

Poster : GIJOE on 2006-01-21 05:25:51 (33164 reads)

in englishin japanese
拙著「PHPサイバーテロの技法」に脆弱性がある、という高木浩光氏のブログがあります。

最初ざっと見たときには、「どんな書籍でも悪意を持って読めば叩き方はいくらでもあるのだな」くらいにしか思っていなかったのですが、他の方のサイトのブログなどを読むと、結構引用されていることが多く、あらためて読んでみたところ、事実として、拙著の記述にミスがあったので、まずはそのことについて書きます。

Read more... | 2169 bytes more |0 comments

« 1 2 3 4 (5) 6 »
Login
Username or e-mail:

Password:

Remember Me

Lost Password?

Register now!