データベースに書き込む前にデータをクリーニングするためのより良い方法

StackOverflow https://stackoverflow.com/questions/4776720

質問

私は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のバージョンを実行しているときに、魔法の引用がオフになります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top