[PHP-users 33229] Re: SQLインジェクションの可能性
新垣友孝
seiya_gm @ mail.goo.ne.jp
2008年 2月 2日 (土) 02:13:09 JST
成田 実さん返信ありがとうございます。
> まずはデータベースは何を利用しているのか、
> PHPのバージョンは4系なのか5系なのかを明記してください。
すみません。初歩的な部分ですよね。
例を挙げてみますね。
・PHP5系
・Windows2000サーバ
・MS SQL Server
・IIS
といった環境でHTMLフォームからの入力をデータベースに
格納するといった感じの場合です。
$val=htmlspecialchars($_POST['input'],ENT_QUOTES,'SJIS');
$query = "SELECT * FROM table1 WHERE userID= '$val'";
userIDとはしてますがデータは可変長のテキスト型と思ってください。
文字列の長さはある程度制限するとして、$_POST['input']の内容は
クオートがあれば実態参照に変換されているのでクエリーが改ざん
(SQLインジェクション)される事はないのだろうか?
他にエスケープする必要性はないのだろうか?
格納したデータはHTML表示用に利用するため"'<>&等は
htmlspecialcharsで変換されたままで構わない状況下での話しです。
といった質問内容です。言葉足らずで度々すみません。
再びよろしくお願いします皆様。
---------------------------------------------
新垣友孝
PHP-users メーリングリストの案内