2008年2月 2日

[PHP-users 33228] Re:SQLインジェクションの可能性

こんばんは。

まずはデータベースは何を利用しているのか、
PHPのバージョンは4系なのか5系なのかを明記してください。
でないと、5系で使える関数の説明をしても4系では使えないので。。。

本題に移りますが
PHPでのSQLエスケープ処理はデータベースごとに

用意されている関数を使用することが推奨されていたと思います。

ご利用のデータベースがMySQLの場合ですと
mysql_real_escape_string関数がそれにあたります。

もしくは、PHPのバージョンが5系でしたら
PDO関数のbindメソッドを利用するのもありだと思います。
(パラメータクエリにしてbindするとエスケープ処理は不要になる?)

的外れでしたらごめんなさい。


新垣友孝 wrote:
> 新垣と申します。
> お世話になっております。
>
> 早速なのですが、以下のような場合でSQLインジェクションの可能性があるのかよくわからなかったので
> 質問させてください。
>
> $val=htmlspecialchars($_POST['input'],ENT_QUOTES,'SJIS');
>
> $query = "SELECT * FROM table1 WHERE userID= '$val'";
>
> このような場合で$_POST['input']にいかなる入力値があれど
> htmlspecialcharsでクオートは実態参照されるので
> 問題ないと思うのですが、根本的に間違ってますでしょうか?
>
> こういった場合危険などありましたら
> ご教授ください。
>
>
> ---------------------------------------------
> 新垣友孝
> _______________________________________________
> PHP-users mailing list PHP-users@xxxxx
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://oldwww.php.gr.jp/php/novice.php3
_______________________________________________
PHP-users mailing list PHP-users@xxxxx
http://ml.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://oldwww.php.gr.jp/php/novice.php3

投稿者 xml-rpc : 2008年2月 2日 01:17
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/69340
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。