[PHP-users 32364] Re: PHPを使ってのPostgresqlについて

Yasuo Ohgaki yohgaki @ ohgaki.net
2007年 7月 3日 (火) 10:40:30 JST


大垣です。

本題とは関係ありませんが、

PAD さんは書きました:
> 楽です。
> いつも勉強させてもらっています。
> PHPを使ってのPostgreSQL からのデータ取得についてです。
> 
> コードはPHPで書いていますが、PostgreSQL からのデータ取得
> ですので、場違いかもしれません。
> 
> ヒアドキュメントを使い、以下のようにして
> データを検索し1ページの表示個数を20個にしています。
> 
> 
> $hoge = $_REQUEST['hoge'];
> $whereSQL = "WHERE abc LIKE '%$hoge%'";

2つエスケープ漏れがあります。

まず、クエリに渡す全ての変数はpg_escape_string(またはpg_escape_bytea)で
エスケープしなければなりません。PEARのescapeメソッドを使えば良いです。
# 今PEARのコードを見るとescapeの問題を指摘してから1年以上経ってから
# 直しているようですね。CVSタグを見るとRELEASE 1.7.x以上なら問題ない
# コードになっています。

次にhogeの中に'%'が含まれている場合が考慮されていません。

-- 
Yasuo Ohgaki : yohgaki @ ohgaki.net : http://www.ohgaki.net/



PHP-users メーリングリストの案内