Ks-Product.com

MYSQL:クエリする際のエスケープ1

PHP等のスクリプトからMYSQLなどのデータベースに接続しクエリする場合、\n, \r, \, ', "などの文字列をエスケープする必要があります。上記文字列はSQLでは特別な意味を持つためです。(HTMLでいう < や > に相当。)

エスケープを行う為の関数がいくつか用意されているので、自力でエスケープする必要はありません。また、サーバー側で「magic_quotes_gpc」の設定がonになっている場合は自動でエスケープされます。

しかし、magic_quotes_gpcやエスケープ関数addslashesはインジェクション攻撃による脆弱性があるらしいので使わない方が無難らしい。(インジェクション攻撃とは、HTMLのフォームなどから不正なデータを送信し、不正アクセスなどをすること。)

エスケープするにはmysql_real_escape_string()関数を使用するのが無難っぽい。ただし、magic_quotes_gpcがonになっていると2重でエスケープ処理されてしまうので、.htaccessで設定を無効にするか、stripslashes()関数でエスケープ文字を取り除く。ただ、mysql_real_escape_string()関数を使っても万全ではないらしい。SHIFT-JISを使用するとヤバいらしい。

コメント(0)

コメントが存在しません。

コメントを投稿する

※投稿されたコメントは管理人が承認するまで反映されません。
またHTMLタグはご利用できません。コメント上にHTMLタグを表示させたい場合は全角でご入力ください。

お名前
サイトURL
コメント
  • Home
  • > MYSQL:クエリする際のエスケープ1
名前:
kakeruニコ動twitter
職業:
neet(転職活動中)
生年月日:
1983年4月19日

Flash(ActionScript)で食っていけたらなと思う今日この頃…とりあえず、年末年始にかけて転職活動できるようにごにょごにょ…

Powered by Movable Type.

ご覧の環境ではこのコンテンツはご利用できません。
最新のFlashPlayerをダウンロードしてからご利用ください。
Get Adobe Flash player