データベースに書き込む前にデータをクリーニングするためのより良い方法
-
23-10-2019 - |
質問
私はPHPとMySQLを使用して基本的なフォーラムを供給しています。ユーザーがApoStrophe( ')を使用するか、リンクを投稿に挿入すると、mysql_real_escape_string関数がテキストにを追加します。投稿を表示するとき、リンクは機能せず、すべてのアポストロフィはその前にを持っています。
私がテキストを出力する前に何かをしていないという問題は、MySQLに書き込む前にデータを適切にクリーニングしていない問題ですか?
解決
MagicQuotesはオンになりますか?次のようなPHPページを作成して、すぐに確認できます。
<?php var_dump(get_magic_quotes_gpc()) ?>
ページが次のように言っている場合 int(1)
, 、それから犯人はそうではありません mysql_real_escape_string
, 、しかしPHP自体。それはセキュリティ機能でしたが、あまり安全ではなく、ほとんど迷惑です。各変数を消毒する前に、最初にスラッシングを元に戻す必要があります ストリップスラッシュ.
他のヒント
これを使用して、魔法の引用をオフにすることもできます。
if ( version_compare(PHP_VERSION, '5.3.0', '<') ) {
set_magic_quotes_runtime(0);
}
サーバーが5.3.0未満のPHPのバージョンを実行しているときに、魔法の引用がオフになります。
所属していません StackOverflow