[PHP-users 32367] Re: PHPを使ってのPostgresqlについて
PAD
pad-traku @ pa-d.com
2007年 7月 3日 (火) 18:01:44 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の中に'%'が含まれている場合が考慮されていません。
>
$data = addslashes($data);
$data = htmlspecialchars($data);
上記 $hoge については、割愛しましたが 記載:$data の方法にてエスケープいたしておりますが、
不足でしょうか。
そのあたり、ご教示下さい。
PHP-users メーリングリストの案内