PEAK XOOPS - News in englishin japanese

Archive | RSS |
  
Poster : GIJOE on 2005-12-08 13:07:09 (11091 reads)

in englishin japanese
私自身、最近知ったのですが、以下の様なファイル名がサーバ上にあった場合、PHPファイルとして実行されます。

foo.php.en
foo.php.orig.test

これはApacheのmod_mime.cの「正しい仕様」なのですが、この仕様を知らなかったが故にできてしまっているファイルアップロード脆弱性もあり得ます。

もし、アップロードされてDocumentRoot下に置かれるファイル名が、自動連番などでなく、元のファイル名を活かした形のものとなった場合、ファイル名最後の.phpだけを禁止しても、意味がなくなります。

XOOPSにそういうモジュールがあるかどうか私は知りませんが、念のため、最新版のProtector (2.54) では、ドット(.)が2つ以上あるファイルをアップロードしようとした場合は、強制終了する仕様にしました。

もし、ファイルアップロードで、真っ白画面になってしまった場合、Protectorの管理画面を見てください。理由が書いてあるはずです。

Read more... | 1340 bytes more |0 comments

Poster : GIJOE on 2005-12-02 01:00:00 (13469 reads)


1:    $result = mysql_query( "SELECT ''" , $conn ) ;
2:    $obj = mysql_fetch_object( $result ) ;


in englishin japanese
PHP 5.0.5からの非互換性。

このコードは、PHP 5.0.4以下であれば何の問題もないが、PHP 5.0.5になった途端、fatal errorで止まってしまう。

SQLを動的に生成する条件によって、カラムデータではなく単に空文字を渡したい場合などには、以下のように、カラム名をつけることで、このfatal error は回避できる。

もともと問題あるコードとは言え、PHP 5.0.5から突然fatal errorになるので、ハマリポイントとだろうと思い、ここにメモしておく。



1:    $result = mysql_query( "SELECT '' AS tmp_name" , $conn ) ;
2:    $obj = mysql_fetch_object( $result ) ;

0 comments

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

Password:

Remember Me

Lost Password?

Register now!