ページ

2012-06-24

[PHP] MySQLでエスケープした文字を戻す

"ろぐほー"にミスが有ったので修正しました。

MySQLのクエリー発行の際に文字列をエスケープしているのですが、後でエスケープした文字列を元に戻すのを忘れていました。

一部始終を紹介します。


PHPではMySQLの操作を行う際には不正なクエリーが発行されないように
mysql_real_escape_string()関数
を使って文字列をエスケープします。

これを行わないと、SQLインジェクションという脆弱性を持つことになります。
(なお、この方法は既に推奨される方法ではないので気をつけて下さい。)

この関数を使うと例えば、
'
という文字は
\'
という文字に置換されます。

また、
\'
と変換された文字を元に戻すには
stripslashes()関数
を使用します。


"ろぐほー"では stripslashes()関数を使用するのを忘れていた為、表示される文字列がおかしくなっていました。
例えば
I'm ~
という文章が
I\'m ~
という風に表示されていました。


現在は stripslashes()関数を使用してエスケープされた文字を元に戻しているので、問題なく表示されています。



0 件のコメント:

コメントを投稿