SQLインジェクション : PHP

投稿日 : 2008年9月2日 | 更新日 : 2011年02月09日 前のページへ戻る

SQLインジェクション(SQL Injection)のメモ。

SQLインジェクションとは

SQLインジェクション(SQL Injection)は外部リクエスト変数にシングルクォーテーション(‘)やダブルクォーテーション(“)を混ぜて悪意あるSQL文を実行する。 SQLの文字リテラルはシングルクォーテーション(‘)またはダブルクォーテーション(“)で囲む。多くのDBはどちらを用いても良い。慣用的にシングルクォーテーションを使う場合が多い。

対策

PHPにはSQLインジェクション対策として各データベースに応じた関数mysqli_real_escape_string(MySQL)やpg_escape_string(PostgreSQL なら )を提供している。 専用の関数を使うことが推奨されているが汎用的な関数addslashes関数もある。 addslashesはシングルクォート(‘), ダブルクォート(“),バックスラッシュ (\) ,NUL (NULL バイト)をエスケープする。

addslashes関数はSQL文の終了を意味する;(セミコロン)はエスケープされない。MySQLなどSQLの複文発行を禁止している場合は良いがPostgreSQLなど複文を許可している場合は注意が必要。

PHP | 固定リンク | Comments (0)

関連記事

このページの上へ移動

コメント

コメントはまだありません。

コメントの投稿

改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。

 

 

 


トラックバックURL

http://www.findxfine.com/programming/php/725.html/trackback

このページの上へ